2011-08-18 13 views
12

मैं दो स्थानीय रेल क्षुधा है कि मैं परीक्षण प्रयोजनों के लिए एक दूसरे से बात करना चाहते हैं ... एक 9292.पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति मुद्दों

लेकिन जब पर अन्य पोर्ट 3000 पर चल रहा है और स्थानीय होस्ट करने के लिए 3000:: मैं स्थानीय होस्ट से एक ajax अनुरोध करना

Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

इसे ठीक करने पर कोई विचार: 9292 मैं इस मुद्दे को बार आ रही है?

मैं जेएसओएन अनुरोधों (केवल परीक्षण उद्देश्यों के लिए) प्राप्त करने के लिए एक सरल सिनात्रा ऐप का उपयोग कर रहा हूं। नीचे मैंने मिला दो पटरियों एक दूसरे के लिए स्थानीय होस्ट पर (एक बंदरगाह 3000 पर पोर्ट 9292 पर अन्य और)
कार्य संहिता

before do 
    headers['Access-Control-Allow-Origin'] = '*' 
    headers['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS' 
    headers['Access-Control-Allow-Headers'] = 'X-Requested-With, X-Prototype-Version, X-CSRF-Token' 
end 

after do 
    headers['Access-Control-Allow-Origin'] = 'http://localhost:3000/' 
end 

आशा इस मदद करता है बात कर एप्लिकेशन ही है!

+3

JSONP http://en.wikipedia.org/wiki/JSONP – Gazler

उत्तर

4

क्रॉस-डोमेन AJAX को आम तौर पर सुरक्षा कारणों से अनुमति नहीं है। JSONP एक विकल्प है यदि आप इसका उपयोग करने में सक्षम हैं। यदि नहीं, तो आप इस प्रतिबंध को पाने के लिए flXHR जैसे कुछ का उपयोग कर सकते हैं।

शुभकामनाएँ!

+2

पर एक नज़र डालें, मुझे यह ब्लॉग इस ब्लॉग का पालन करके काम कर रहा है: http: //www.tsheffler.com/blog/? P = 428 ... मैं – dennismonsewicz

+0

से ऊपर अपना कोड बेस संपादित करूंगा यह सही नहीं है। क्रॉस साइट AJAX की अनुमति है यदि सर्वर निर्दिष्ट करता है कि प्रतिक्रिया शीर्षलेख में मूल अनुमति है। – doug65536

+0

आप सही हैं, एक्सेस-कंट्रोल-ऑब्जेक्ट-उत्पत्ति सेट करना, एक्सेस-कंट्रोल-स्वीट-मेथड इत्यादि क्रॉस डोमेन AJAX अनुरोधों को अनुमति देंगे। –

0

मेरे लिए, 50X/40X स्थिति वापस आ रही थी क्रोम/वेबकिट ने एक नामित एक्सेस-कंट्रोल-अनुमति-उत्पत्ति त्रुटि प्रदर्शित की।

मैंने 201 के बाद तक अपने प्रतिक्रियाओं के साथ खेला और अब यह काम करता है!

संबंधित मुद्दे