2011-02-26 89 views
3

這是我如何使用$.ajax

var link = "http://www.myapp.net/..." 

$.ajax({ 
    url: link, 
    cache: false, 
    async: false, 
    success: function(html){ 

    }, 
    error: function(){ 

    } 
}); 

請求的結果,或者是一個空白頁面或只是一個數字的頁面。所以錯誤回調實際上不應該被觸發,只要請求不失敗。

但我一直得到以下錯誤

alert(jqXHR + "-" + textStatus + "-" + errorThrown); 

enter image description here

Here is some information about the error code in the picture

我跑我的本地主機上的項目。 ajax代碼中的鏈接指向Web上的另一個項目。

任何想法?

+1

你確定錯誤得到執行?我的意思是,錯誤和成功回調做同樣的事情...你有沒有嘗試過一個簡單的警報('錯誤執行')在錯誤回調? – usoban 2011-02-26 12:42:08

+0

你怎麼能說錯誤函數總是被執行? – krtek 2011-02-26 12:42:11

+1

是與'$ .ajax'腳本位於同一個域的網址嗎?你可能會被相同的原產地策略咬傷。 – xzyfer 2011-02-26 12:44:35

回答

5

如果ajax調用無法完成 - 即,如果url位於不同的域(或者如果您正在從本地文件運行它),如果請求超時或服務器迴應一個錯誤代碼。

我猜這是一個域(相同來源)的政策錯誤

更新:如果你想要做跨域Ajax,只是說看看James Padolsey's jQuery snippet(使用雅虎的公共代理,使所有! jQuery Ajax調用跨域)

+0

現在我在我的本地主機上運行我的項目。 ajax代碼中的url指向另一個頁面。什麼可以解決問題? – 2011-02-26 14:27:46

+0

從該網址運行您的網站。 – 2011-02-27 13:33:33

+0

@藝術你不得不在本地主機上建立服務器端「代理」(服務器端代碼可以發送請求到不同的域),然後使用它,或將代碼移動到與其他頁面相同的域。除此之外,只有改變遠程頁面使用'jsonp'才能解決問題。 – 2011-02-27 13:35:27