मैं जो अब एक मोबाइल वेबसाइट के लिए परिवर्तित किया जा रहा है एक PhoneGap एप्लिकेशन विकसित की थी छोड़ कैसे। सब कुछ एक छोटी सी गड़बड़ी के अलावा सुचारू रूप से काम करता है। मैं एक POST अनुरोध के माध्यम से एक निश्चित तृतीय पक्ष API का उपयोग करता हूं, जो ऐप में ठीक काम करता है, लेकिन मोबाइल वेबसाइट संस्करण में विफल रहता है।विकल्प AngularJS में preflight अनुरोध
करीब से देख (मैं ब्राउज़र वास्तव में लगता है कि) यह AngularJS की तरह लगता है के बाद पहली बार एक विकल्प अनुरोध भेज रहा है। मैंने आज सीओआरएस के बारे में बहुत कुछ सीखा, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता कि इसे पूरी तरह अक्षम कैसे किया जाए। मुझे लगता है कि एपीआई (ताकि पक्ष में परिवर्तन असंभव है) करने के लिए पहुँच नहीं है, लेकिन किसी डोमेन मैं उनके लिए पर काम कर रहा हूँ जोड़ लिया है पहुंच-नियंत्रण-अनुमति दें-उत्पत्ति हैडर।
इस कोड के बारे में मैं बात कर रहा हूँ है:
var request = {
language: 'fr',
barcodes: [
{
barcode: 'somebarcode',
description: 'Description goes here'
}
]
};
}
var config = {
headers: {
'Cache-Control': 'no-cache',
'Content-Type': 'application/json'
}
};
$http.post('http://somedomain.be/trackinginfo', request, config).success(function(data, status) {
callback(undefined, data);
}).error(function(data, status) {
var err = new Error('Error message');
err.status = status;
callback(err);
});
मैं विकल्प का अनुरोध और सिर्फ वास्तविक पोस्ट अनुरोध को छोड़ कि भेजने से ब्राउज़र (या AngularJS) कैसे रोक सकते हैं? मैं AngularJS 1.2.0 का उपयोग कर रहा हूँ।
अग्रिम धन्यवाद।
यह सही उत्तर है - आपकी सामग्री-प्रकार और कैश-कंट्रोल हेडर प्रीफलाइट अनुरोध को ट्रिगर कर रहे हैं। एक सादा सामग्री/प्रकार के पाठ/सादे के साथ प्राप्त करें और कुछ अन्य गैर-प्रीफलाइट किए गए अनुरोध को ट्रिगर करने का एकमात्र तरीका हैं। देखें: https: //developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests –
आह हाँ, कैश-कंट्रोल के बारे में भूल गया। –
एक कस्टम हेडर प्रीफलाइट भी ट्रिगर करेगा। –