簡體   English   中英

為什么從我的jQuery.getJSON()方法中調用fail方法?

[英]Why is the fail method being called from my jQuery.getJSON() method?

我有一個直接從Web瀏覽器中的本地文件加載的html頁面(FF 14.0.1或Chromium,在Ubuntu 12.04上)

html頁面包含一個本地jQuery js文件,然后包含帶有此方法的本地js文件:

function start() {
     $.getJSON("http://localhost:8080/app/connect?callback=?", "id=11", function() { alert("win!"); })
     .done(function() { alert("done"); })
     .fail(function(xhr, request, error) { alert(xhr.status + "<> + request + "<>" + error); }); }

我正在響應來自JBoss / Restful Web服務器的這些請求,沒有特殊配置,服務器上的方法使用@Produces({“ application / json”})進行注釋。 服務器不顯示任何錯誤,甚至正確獲取id值。

當我觸發此javascript時,將調用fail方法,並收到以下警報:

200<>parsererror<>jQuery311391951_513134 was not called

使用Firebug進行檢查時,我可以看到JSON響應,看起來還可以。 在Chromium中,我可以檢查請求/響應頭,一切看起來都很好。 我保存了該文本,如果有人認為它可以提供更多的見解。

誰能告訴我怎么回事? 為什么會出現此錯誤?

提前致謝!

看起來您正在訪問本地資源,在這種情況下,您不必使用jsonp。 您可以刪除callback=? 來自網址。

如果您必須訪問違反同源策略的第三方資源,則使用它

function start() {
    $.getJSON("http://localhost:8080/app/connect", "id=11", function() { 
        alert("win!");
    }).done(function() { 
        alert("done"); 
    }).fail(function(xhr, request, error) { 
        alert(xhr.status + "<>" + request + "<>" + error); 
    }); 
}

您正在使用JSONP(帶有填充的JSON)。 服務器必須理解?callback=參數,並使用回調函數包裝JSON答案。 這適用於有SOP限制的呼叫。 如果不是(相同的域和端口),則刪除回調參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM