একই ডোমেনে 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.