यहाँ कुछ जावास्क्रिप्ट है:क्या jquery की पोस्ट() विधि एएसपीनेट 3.5 वेबमाइंड को कॉल करने में सक्षम है?
$.ajax({
type: "POST",
url: "default.aspx/GetDate",
contentType: "application/json; charset=utf-8",
data: {},
dataType: "json",
success: function(result) {
alert(result.d);
}
});
उपरोक्त विधि काम करता है के रूप में मैं उम्मीद होती है और अलर्ट स्ट्रिंग default.aspx
में [WebMethod] कहा जाता GetDate से लौटे लेकिन जब मैं का उपयोग करें:
$.post(
"default.aspx/GetDate",
{},
function(result) {
alert(result.d);
},
"json"
);
इस सफलता विधि में चेतावनी कभी नहीं आग लगती है।
फ़ायरबग मैं देख सकता हूँ कि पोस्ट मूल रूप से काम किया है में - यह रिटर्न 200 ठीक
लेकिन इस मामले में प्रतिक्रिया पूरे default.aspx पृष्ठ के HTML है बजाय JSON लौटे जब मैं $ .ajax का उपयोग() तरीका।
संपादित करें:
फायरबग में दिखाए गए प्रतिक्रिया और अनुरोध शीर्षलेख समान नहीं हैं।
...
REQUEST:
Accept application/json, text/javascript, */*; q=0.01
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Connection keep-alive
Content-Type application/json; charset=utf-8
Cookie (removed)
Host (removed)
Referer (removed)
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
X-Requested-With XMLHttpRequest
RESPONSE:
Cache-Control private, max-age=0
Content-Length 27
Content-Type application/json; charset=utf-8
Date Wed, 11 Jan 2012 12:36:56 GMT
Server Microsoft-IIS/7.5
X-Powered-By ASP.NET
$ .post() के साथ
...
REQUEST:
Accept application/json, text/javascript, */*; q=0.01
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding gzip, deflate
Accept-Language en-gb,en;q=0.5
Connection keep-alive
Cookie (removed)
Host (removed)
Referer (removed)
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
X-Requested-With XMLHttpRequest
RESPONSE:
Cache-Control private
Content-Length 13815
Content-Type text/html; charset=utf-8
Date Wed, 11 Jan 2012 12:36:53 GMT
Server Microsoft-IIS/7.5
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
मैं इस के लिए $ .post() विधि का उपयोग कर सकते, या मुझे $ .ajax() विधि का उपयोग करना है?
क्या आप * निश्चित * अनुरोध हेडर समान हैं? क्या 'सामग्री-प्रकार' शीर्षलेख भिन्न नहीं है? – lonesomeday
क्या आपको निश्चित रूप से वेब सेवा कॉल करने की आवश्यकता है? मैंने सचमुच इसे $ .get का उपयोग करके किया है और शुद्ध HTML (बिना हेडर के) लौटाया है और यह मेरी आवश्यकताओं के लिए पूरी तरह से काम करता है। अगर इससे मदद मिलेगी तो मुझे बताएं और मैं कुछ कोड पोस्ट करूंगा। – Archer
जितनी बार मैं उन्हें @lonesomeday पढ़ता हूं, आपका संदेह सही है - "सामग्री-प्रकार: एप्लिकेशन/जेसन; charset = utf-8" वास्तव में $ .ajax() कॉल से अनुरोध शीर्षलेख में है। – mikev2