मैं एक JSON WCF सेवा है और मैं इस तरह सेवा का उपयोग करने के लिए कुछ जावास्क्रिप्ट में लिखा है,WCF सेवा विधि के साथ असफल अनुमति नहीं
function stuffClick2() {
$.ajax({
url: "http://192.168.54.98/JsonWCFService/Service1.svc/Post",
type: "POST",
contentType: "application/json",
data: '{"x":"1","y":"2","message":"The answer is: "}',
dataType: "html",
success: function(data) { $('body').html(data); }
});
}
मैं जो उस में ऊपर जावास्क्रिप्ट है एक HTML पृष्ठ में लिखा है। आईआईएस का उपयोग कर एचटीएमएल पेज परोसा जाता है।
जब मैं अपने पीसी पर क्रोम का उपयोग करके HTML पृष्ठ का उपयोग मैं देख रहा हूँ इन आपरेशनों इस क्रम में WCF JSON सेवा करने के लिए भेजा जा रहा है,
OPTIONS /JsonWCFService/Service1.svc/Post HTTP/1.1
POST /JsonWCFService/Service1.svc/Post HTTP/1.1
विकल्प पहले से असफल रहा था, लेकिन मैं बनाया विकल्प वापसी फोन इस हेडर जो तब यह काम करता है,
Access-Control-Allow-Origin: *
लेकिन कॉलबैक मैं ऊपर परिभाषित किया है काम नहीं करता है,
success: function(data) { $('body').html(data); }
मुझे पता है कि WCF सेवा कुछ इस तरह वापस आ गया है,
<b> The answer is 3 </b>
लेकिन कॉलबैक कहा जाता है जब डेटा का मूल्य एक खाली स्ट्रिंग है।
जब मैं एक अलग ब्राउज़र (आईई) में एचटीएमएल पेज चलाता हूं जो केवल पोस्ट कॉल का कारण बनता है, लेकिन विकल्प कॉल नहीं करता है तो यह काम करता है। मैंने देखा कि आईई ने मुझे चेतावनी दी है कि यह एक सुरक्षा जोखिम है और मुझसे पूछता है कि मैं जारी रखना चाहता हूं या नहीं।
आप सही रास्ते पर हैं, लेकिन यह अजीब है क्योंकि यह सब मेरे लिए पहले दिन काम कर रहा था। – peter
ठीक है, इसलिए मेरे पास विकल्प चीजें काम कर रही हैं (OPTIONS अनुरोध कर रहे हेडर को वापस करने के लिए Application_BeginRequest विधि में कुछ कोड जोड़कर)। तो उसके बाद पोस्ट तब होता है, लेकिन मुझे XMLHttpRequest से एक त्रुटि मिलती है - मूल शून्य की अनुमति नहीं है। तो ऐसा लगता है कि पोस्ट में इसका उपयोग करने वाले शीर्षलेख 'उत्पत्ति: शून्य' है, मैं इसे फिडलर में देख सकता हूं। ऐसा क्यों है? – peter
यदि मैं पोस्ट ऑपरेशंस को देखता हूं जो काम करता है तो कोई मूल शीर्षलेख निर्दिष्ट नहीं होता है। जो बताता है कि यह क्यों काम करता है। – peter