मैं jQuery के साथ AJAX कॉल से WCF सेवा को कॉल करने का प्रयास कर रहा हूं। मैं एसओएपी-यूआई और एक्सेल/वीबीए से डब्ल्यूसीएफ को कॉल करने का प्रबंधन करता हूं। मेरे समस्या विकल्प अनुरोध है कि भेज दिया जाता है से आता है और कोई पोस्ट इस प्रकार है:जावास्क्रिप्ट से डब्ल्यूसीएफ सेवा कैसे कॉल करें?
- अगर मैं
http://mywcf/service.svc
का URL सेट, विकल्प भेज दिया जाता है और मैं एक400 Bad Request
स्थिति प्राप्त और पोस्ट अनुरोध नहीं भेजा जाता है। इस मामले में, शीर्षलेख मेंHTTP/1.1
गुम है (SOAP-UI शीर्षकों की तुलना में)। - यदि मैं
http://mywcf/service.svc HTTP/1.1
पर यूआरएल सेट करता हूं, तो विकल्प भेजे जाते हैं और मुझे200 OK
स्थिति मिलती है लेकिन POST अनुरोध नहीं भेजा जाता है। इस मामले में,HTTP/1.1
को फ़ाइल नाम के रूप में व्याख्या किया जा रहा है।
क्या कोई मुझे बता सकता है कि जावास्क्रिप्ट से डब्लूसीएफ पर पोस्ट कार्रवाई कैसे कॉल करें और सेवा URL को दूषित किए बिना HTTP/1.1
शीर्षलेख जोड़ने के लिए?
var soapData = ''
+'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:mic="http://microsoft.wcf.documentation">'
+' <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702">'
+' <wsrm:Sequence>'
+' <wsrm:Identifier>s:Sender a:ActionNotSupported</wsrm:Identifier>'
+' <wsrm:MessageNumber>1</wsrm:MessageNumber>'
+' </wsrm:Sequence>'
+' <wsa:Action>http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence</wsa:Action>'
+' <wsa:ReplyTo>'
+' <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>'
+' </wsa:ReplyTo>'
+' <wsa:MessageID>uuid:'+ MsgUid +'</wsa:MessageID>'
+' <wsa:To>'+ Url +'</wsa:To>'
+' </soap:Header>'
+' <soap:Body xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm">'
+' <wsrm:CreateSequence>'
+' <wsrm:AcksTo xmlns:wsa="http://www.w3.org/2005/08/addressing">'
+' <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>'
+' </wsrm:AcksTo>'
+' <wsrm:Offer>'
+' <wsrm:Identifier>urn:soapui:'+ SeqUid +'</wsrm:Identifier>'
+' </wsrm:Offer>'
+' </wsrm:CreateSequence>'
+' </soap:Body>'
+'</soap:Envelope>';
$.ajax({
type: 'POST',
url: 'http://mywcf/service.svc', // with or without +' HTTP/1.1'
data: soapData,
contentType: 'application/soap+xml;charset=UTF-8',
dataType: 'xml'
});
मेरी WCF web.config
में मान::
यहाँ मेरी ajax कॉल से एक उद्धरण है
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST, OPTIONS" />
<add name="Access-Control-Allow-Headers" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
एक स्पष्ट मुद्दा आपके कॉल में यूआरएल है। आपको यूआरएल – Sparrow
@ डब्ल्यूपीएफ विधि नाम में डब्ल्यूसीएफ विधि नाम शामिल करने की आवश्यकता है, मैं विधि नाम सेट किए बिना वीबीए और एसओएपी-यूआई से डब्ल्यूसीएफ को कॉल करने का प्रबंधन करता हूं। जब मैं अपने AJAX कॉल में एक विधि नाम जोड़ता हूं, तो इसे फ़ाइल नाम के रूप में समझा जाता है। मुझे नहीं लगता कि यह एक समाधान है। – sinsedrix
नीचे वोट वोट उनकी पसंद की व्याख्या कर सकते हैं, धन्यवाद। – sinsedrix