您这样做:function receive(saveData) { if (saveData == null) { alert("DATA IS UNDEFINED!"); // displays every time } alert("Success is " + saveData); // 'Success is undefined'}$.ajax({ data: { User: UserValue, GUID: GUIDValue }, cache: false, dataType: "jsonp", // tried json type: "GET", crossDomain: true, jsonp: false, // tried true jsonpCallback: "receive", url: "http://localhost/NotifMOD/NotifService.svc/GetAllMessages?callback=receive?", async: false, // tried true error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus, errorThrown); }});I'm accessing a cross-domain webservice utilizing an.ajax jquery call from an html page. While I can see the jsonp data using firebug, I am not able to load it into a variable or even display it (for debugging purposes). Attempts to retrieve data using the jsonpCallback, success and complete functions always result in 'undefined' / null data. Ultimately, I need to save the data to variables. Any assistance will be greatly appreciated!$.ajax({ data: { User: UserValue, GUID: GUIDValue }, cache: false, dataType: "jsonp", // tried json type: "GET", crossDomain: true, jsonp: false, // tried true jsonpCallback: function (saveData) { if (saveData == null) { alert("DATA IS UNDEFINED!"); // displays every time } alert("Success is " + saveData); // 'Success is undefined' }, url: "http://localhost/NotifMOD/NotifService.svc/GetAllMessages?callback=success?", async: false, // tried true error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus, errorThrown); }, complete: function (a, b) { alert(a); //[object Object] alert(b); // parseerror }}); 解决方案 In JSONP you must define your function in your code.jsonpCallback must be the name of this function, not a function.See http://api.jquery.com/jQuery.ajax/You do it like this :function receive(saveData) { if (saveData == null) { alert("DATA IS UNDEFINED!"); // displays every time } alert("Success is " + saveData); // 'Success is undefined'}$.ajax({ data: { User: UserValue, GUID: GUIDValue }, cache: false, dataType: "jsonp", // tried json type: "GET", crossDomain: true, jsonp: false, // tried true jsonpCallback: "receive", url: "http://localhost/NotifMOD/NotifService.svc/GetAllMessages?callback=receive?", async: false, // tried true error: function (XMLHttpRequest, textStatus, errorThrown) { console.log(textStatus, errorThrown); }}); 这篇关于ajax'GET'调用返回jsonp可以,但是回调会产生'undefined'数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-29 12:51