我有一個jQuery AJAX請求調用Web服務與結果字符串被返回=「測試!」。當我通過url進行請求時,它會返回:{「testResult」:「Tested!」}這對我來說很有意義。即使同一個URL返回內容,Jquery AJAX也會返回錯誤。這是爲什麼?
我的錯誤是,jQuery的AJAX請求,將命中web服務,命中一個斷點,並返回字符串,但仍然打錯誤代碼,而不是成功。
錯誤代碼如下:
//function(xhr,status,message)
xhr.statusText = success
status = parseerror
message: Error Jquery17204... was not called.
下面是我的AJAX請求。也許有什麼問題,我沒有得到,這是導致返回的代碼錯誤。
$.ajax({
type: 'GET',
url: WEBSERVICE_URL + '/test',
dataType: 'jsonp',
success: function (result, textStatus, jqXHR) {
//success
result = JSON.parse(result);
var r = $(result.getWebFormDesignFieldContentsResult)[0];
var div = $("<div class='modal'>").html(r.d);
/*
var d = document.createElement("div");
d.className = "modal";
d.appendChild(r[0]);
*/
$("div.modal").replaceWith(div);
$("div.modal #queryInput").val(opts);
$("div.modal").css({
top: $(window).height()/2 - $("div.modal").height()/2,
left: $(window).width()/2 - $("div.modal").width()/2
});
$("div.modal").fadeIn();
},
error: function (xhr, status, message) {
//error
//alert("Error: "+result.statusText);
alert("Error: " + status + " " + message);
//$("div.modal").replaceWith($("<div class = 'modal'>").html(result.responseText));
//$("div.modal").fadeIn();
$("div.overlay").fadeOut();
}
});
什麼是WEBSERVICE_URL?它是否在與運行此腳本的頁面不同的域或端口上?它是否返回有效的jsonp? (你向我們展示的jsonp是json,而不是jsonp) – 2012-07-09 15:40:59
你是說AJAX調用返回JSONP數據('dataType:'jsonp') - 實際上是這種情況嗎?如果是,那麼jQuery會爲你解析它,你不需要在你的成功回調函數中執行'result = JSON.parse(result);'。 – 2012-07-09 15:42:28
不同的域....我有2個服務器運行在不同的端口。 – Fallenreaper 2012-07-09 15:50:01