আমার একটি ওয়েবপৃষ্ঠা রয়েছে ( https://smartystishes.com/contact ) যা ক্লাউডফ্রন্ট সিডিএন এর মাধ্যমে এস 3 থেকে কিছু এসভিজি ফাইল লোড করতে jQuery ব্যবহার করে।
ক্রোমে আমি কনসোলের পাশাপাশি একটি ছদ্মবেশ উইন্ডোও খুলব। তারপরে পৃষ্ঠাটি লোড করব। পৃষ্ঠাটি লোড হওয়ার সাথে সাথে আমি কনসোলে সাধারণত 6 থেকে 8 টি বার্তা পাব যা এর সাথে সাদৃশ্যযুক্ত:
XMLHttpRequest cannot load
https://d79i1fxsrar4t.cloudfront.net/assets/img/feature-icons/documentation.08e71af6.svg.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'https://smartystreets.com' is therefore not allowed access.
আমি যদি পৃষ্ঠার একটি মানক পুনরায় লোড করি, এমনকি একাধিক সময়, আমি একই ত্রুটিগুলি পেতে থাকি। আমি যদি Command+Shift+R
বেশিরভাগ ক্ষেত্রে এবং কখনও কখনও সমস্ত কিছু করতে পারি তবে XMLHttpRequest
ত্রুটি ছাড়াই চিত্রগুলি লোড হবে ।
কখনও কখনও চিত্রগুলি লোড হওয়ার পরেও আমি রিফ্রেশ করব এবং এক বা একাধিক চিত্র লোড হবে না এবং সেই XMLHttpRequest
ত্রুটিটি আবার ফিরে আসবে।
আমি এস 3 এবং ক্লাউডফ্রন্টের সেটিংসটি চেক করেছি, পরিবর্তন করেছি এবং পুনরায় পরীক্ষা করেছি। এস 3-তে আমার সিওআরএস কনফিগারেশনটি দেখতে এমন দেখাচ্ছে:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
(দ্রষ্টব্য: প্রথমদিকে কেবল <AllowedOrigin>*</AllowedOrigin>
একই সমস্যা ছিল ))
CloudFront সালে বন্টন আচরণ HTTP- র পদ্ধতি অনুমতি সেট করা হয়: GET, HEAD, OPTIONS
। ক্যাশেড পদ্ধতিগুলি একই। ফরোয়ার্ড শিরোনামগুলি "শ্বেত তালিকাতে" সেট করা আছে এবং সেই শ্বেত তালিকায় অন্তর্ভুক্ত রয়েছে, "অ্যাক্সেস-নিয়ন্ত্রণ-অনুরোধ-শিরোনাম, অ্যাক্সেস-নিয়ন্ত্রণ-অনুরোধ-পদ্ধতি, উত্স"।
ক্যাশে-কম ব্রাউজার পুনরায় লোড করার পরে এটি কাজ করে এমনটি মনে হয় যে S3 / ক্লাউডফ্রন্টের পক্ষে সবকিছু ঠিক আছে, অন্যথায় কেন সামগ্রী বিতরণ করা হবে। তবে তারপরে কেন সামগ্রীটি প্রাথমিক পৃষ্ঠা-ভিউতে সরবরাহ করা হবে না?
আমি ম্যাকোজে গুগল ক্রোমে কাজ করছি। ফায়ারফক্সের প্রতিবার ফাইলগুলি পেতে কোনও সমস্যা নেই। অপেরা কখনই ফাইলগুলি পায় না। সাফারি বিভিন্ন রিফ্রেশের পরে চিত্রগুলি তুলবে।
ব্যবহার করে curl
আমি কোনও সমস্যা পাই না:
curl -I -H 'Origin: smartystreets.com' https://d79i1fxsrar4t.cloudfront.net/assets/img/phone-icon-outline.dc7e4079.svg
HTTP/1.1 200 OK
Content-Type: image/svg+xml
Content-Length: 508
Connection: keep-alive
Date: Tue, 20 Jun 2017 17:35:57 GMT
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Access-Control-Max-Age: 3000
Last-Modified: Thu, 15 Jun 2017 16:02:19 GMT
ETag: "dc7e4079f937e83291f2174853adb564"
Cache-Control: max-age=31536000
Expires: Wed, 01 Jan 2020 23:59:59 GMT
Accept-Ranges: bytes
Server: AmazonS3
Vary: Origin,Access-Control-Request-Headers,Access-Control-Request-Method
Age: 4373
X-Cache: Hit from cloudfront
Via: 1.1 09fc52f58485a5da8e63d1ea27596895.cloudfront.net (CloudFront)
X-Amz-Cf-Id: wxn_m9meR6yPoyyvj1R7x83pBDPJy1nT7kdMv1aMwXVtHCunT9OC9g==
কেউ কেউ পরামর্শ দিয়েছেন যে আমি ক্লাউডফ্রন্ট বিতরণ মুছুন এবং এটিকে পুনরায় তৈরি করুন। একটি বরং কঠোর এবং অসুবিধার সমাধানের মতো মনে হচ্ছে।
কী কারণে এই সমস্যা হচ্ছে?
হালনাগাদ:
লোড করতে ব্যর্থ কোনও চিত্র থেকে প্রতিক্রিয়া শিরোনাম যুক্ত করা হচ্ছে।
age:1709
cache-control:max-age=31536000
content-encoding:gzip
content-type:image/svg+xml
date:Tue, 20 Jun 2017 17:27:17 GMT
expires:2020-01-01T23:59:59.999Z
last-modified:Tue, 11 Apr 2017 18:17:41 GMT
server:AmazonS3
status:200
vary:Accept-Encoding
via:1.1 022c901b294fedd7074704d46fce9819.cloudfront.net (CloudFront)
x-amz-cf-id:i0PfeopzJdwhPAKoHpbCTUj1JOMXv4TaBgo7wrQ3TW9Kq_4Bx0k_pQ==
x-cache:Hit from cloudfront