2013-11-14 21 views
0

我使用jQuery加載方法加載某些頁面以獲取其元數據;如標題,說明等。因爲這似乎是一個簡單的方法。jQuery加載方法使狀態取消

但是每次使用jQuery方法向任何URL發出請求時,它都會獲得取消狀態。爲什麼會發生?這是與瀏覽器或服務器阻止它有關的東西嗎?

我的代碼,我現在用的就是:

$('.link').load('http://' +$('#link').val(), function (response, status, xhr) { 
    if (status == 'error') { 
    $('.linkinfo').html('Not a valid link!'); 
    } else { 
    $('.linkinfo').html($(response).filter('title').text()); 
    } 
}); 

造成這種情況的HTML代碼是:

<input type="text" id="link" onkeyup="" /> 
<div class="linkinfo"></div> 
<div class="link"></div> 

凡投入將是任何鏈接,如www.google.comwww.facebook.com的。我只想拿出他們的元數據。但是每次都執行status == 'error'塊。

我對使用開發人員工具中的「網絡」選項卡進行的每個請求保留一條註釋。 Chrome在Chrome中取消並在Mozilla Firefox中臨時移動。

+0

我們可以看到輸入端的HTML? – Steve

+0

當然可以,它只是一個簡單的輸入! –

+1

我剛剛意識到:您正嘗試出去並獲取非本地網站......由於跨域限制,這將無法正常工作。 – Steve

回答

0

可能是一個同源策略

如果你檢查了jQuery 負載()方法下其他注意事項

api.jquery.com/load

由於瀏覽器安全限制,大多數「Ajax」請求都受到相同的源策略的限制;該請求無法成功從不同的域,子域或協議中檢索數據。

同源策略:

http://en.wikipedia.org/wiki/Same_origin_policy