একই ডোমেনে CORS ত্রুটি?


87

আমি এখনই একটি অদ্ভুত সিওআরএস ইস্যুতে চলছে।

ত্রুটি বার্তাটি এখানে:

XMLHttpRequest cannot load http://localhost:8666/routeREST/select?q=[...] 
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin

দুটি সার্ভার:

  • লোকালহোস্ট: 8666 / রুটআরেস্ট /: এটি একটি সাধারণ পাইথন বোতল সার্ভার।
  • লোকালহোস্ট: 8080 /: পাইথন সিম্পল এইচটিটিপি সার্ভার যেখানে আমি ওয়াই জাভাস্ক্রিপ্ট অ্যাপ্লিকেশন চালাই। এই অ্যাপ্লিকেশন উপরের সার্ভারে অ্যাজাক্স অনুরোধগুলি সম্পাদন করছে।

সমস্যা হতে পারে কি কোন চিন্তা?

সম্পাদনা:

এবং ... বন্দরের সমস্যা ছিল। আপনার উত্তরের জন্য ধন্যবাদ :)

যদি কেউ পাইথন বোতল সার্ভারটিও ব্যবহার করে থাকে তবে আপনি CORS সমস্যা সমাধানের জন্য এই পোস্টে দেওয়া উত্তরটি অনুসরণ করতে পারেন: বোতল পাই: jQuery AJAX অনুরোধগুলির জন্য CORS সক্ষম করা


10
যেহেতু তারা বিভিন্ন বন্দর হয় সেখানে এক হয় না!
— কিছু

বন্দরের নম্বরগুলি আলাদা। এটি ক্রস অরিজিনের বিধি লঙ্ঘন করতে পারে।

4
মনে রাখবেন যে IE পোর্ট নম্বর বিবেচনা করে না।
— রায় নিকোলাস

@ বেশিরভাগ ব্রাউজারগুলি এই সিদ্ধান্তেও পৌঁছে যে একটির 'www' আছে এবং অন্যটি না থাকলে তারা একই নয়। শয়তান এর বিবরণে।
— কদাচিৎ 'হ্যাঁ মনিকার' প্রয়োজন

@ সেলডমনিডি উদাহরণ.কম, www.example.com, www1.example.com, এবং mirror.www.example.com সবই আলাদা আলাদা ডোমেন। example.com , example.com , example.com , example.com:80443 বিভিন্ন উত্স থেকে সব আছে।
— কিছু

উত্তর:


124

প্রোটোকল , হোস্ট এবং পোর্ট একই হলে এটি একই হিসাবে বিবেচিত হবে : একই উত্স নীতি

আপনি যদি এটি সক্ষম করতে চান তবে আপনাকে অবশ্যই শিরোনাম যুক্ত করে ক্রস-অরিজিন রিসোর্স শেয়ারিং (কর্স) অনুসরণ করতে হবে । মজিলার উদাহরণ রয়েছে

আপনার প্রতিক্রিয়াতে আপনাকে শিরোনাম হিসাবে অ্যাক্সেস-নিয়ন্ত্রণ-মঞ্জুরি-উত্স যোগ করতে হবে। প্রত্যেককে অনুমতি দেওয়ার জন্য (আপনার সম্ভবত এটি করা উচিত নয় ):

Access-Control-Allow-Origin: *

যদি আপনার একাধিক উত্সকে সমর্থন করার প্রয়োজন হয় (উদাহরণস্বরূপ উভয় example.comএবং www.example.com), অনুরোধ থেকে শিরোনামের মানটিতে Access-Control-Allow-Originআপনার জবাবটি সেট করুন Origin(আপনি যাচাইয়ের পরে মূলটি সাদা-তালিকাভুক্ত)

এছাড়াও নোট করুন যে কয়েকটি অনুরোধ একটি অপশন-পদ্ধতি সহ একটি প্রিফ্লাইট-অনুরোধ প্রেরণ করে, তাই আপনি যদি নিজের কোডটি লিখেন তবে আপনাকে অবশ্যই এই অনুরোধগুলি পরিচালনা করতে হবে। উদাহরণের জন্য মজিলা দেখুন ।


8
এই লাল রঙ, রাজধানীতে এবং গাঢ় রঙ দিয়ে হাইলাইট করা উচিত সর্বত্র যেখানে AJAX এর জড়িয়ে পড়ে।
— জোল্টন শ্মিড্ট

4
এই উত্তরটি একটি সংযোজন, নোট যে 'Access-Control-Allow-Origin: https://example.com'হয় না সমতূল্য 'Access-Control-Allow-Origin: https://www.example.com'। যদি আপনার সাইটটি উভয়ের মাধ্যমে অ্যাক্সেসযোগ্য হয় তবে আপনার প্রতিক্রিয়া-শিরোনামে আপনার উভয়ই থাকা উচিত।
— কমই 'হ্যাঁ মনিকার' প্রয়োজন

4
নোট যে কোন preflight অনুরোধ মত সহজ অনুরোধের জন্য ডিফল্টরূপে পাঠানো হয় GET, POSTএবং HEAD। অতিরিক্ত তথ্যের জন্য উত্তরে লিঙ্কিত MDN নিবন্ধটি দেখুন ।
— এমিল বার্গারন

@ সেলডমনিডিতে আপনার সদৃশ শিরোনাম নেই
— মাইক ফ্লিন

@ মাইকফ্লিন আমার শব্দবন্ধটি স্বীকারোক্তিজনকভাবে একটি স্পর্শ আলগা ছিল, কিন্তু আমি এটি প্রস্তাব দেওয়ার চেষ্টা করিনি; অনুরোধ অনুযায়ী যথাযথ শিরোনাম প্রেরণের জন্য সার্ভারটি কেবল কনফিগার করা দরকার।
— কমই '

30

বন্দরের নম্বরগুলি আলাদা।

কোনও স্কিম, হোস্টনাম, বা পোর্টের কোনওটি না মিলে একটি অনুরোধ ক্রস-ডোমেন হিসাবে বিবেচিত হয়।


4
443 এবং 80 ব্যতীত
— জোসেফ লাস্ট

17
443 এবং 80 সহ
— কোড_মঙ্ক

4
সমস্যার একটি নিশ্চিতকরণ কীভাবে সমস্যার সমাধান হতে পারে? উত্তর পোস্ট করুন।
— রীতেশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.