2012-11-19 51 views
1

我想通過ajax獲取404自定義頁面的內容(Ii需要使用Greasemonkey的此頁面的計數器值)。使用ajax獲取自定義404錯誤頁面的內容

不幸的是,jQuery的.fail方法ajax並沒有給出實際讀取頁面內容的可能性,例如成功時的數據值。

有什麼解決方法嗎?我也會買香草js。

最佳rehards

+0

調用ajax方法返回的'jqXHR'對象應該有完整的響應。這應該作爲第一個參數傳遞給請求中定義的'error'方法。 http://api.jquery.com/jQuery.ajax/#jqXHR –

+0

可能的重複http://stackoverflow.com/questions/4687235/jquery-get-or-post-to-catch-page-load-error-eg -404 – Cyclonecode

+0

我寫了一個greasemonkey腳本,並懷疑原始站點的所有者正在試圖阻止我的請求,或者它可能是一個錯誤 – Stasik

回答

1

您可以在香草JS做到這一點:

var httpRequest = new XMLHttpRequest(); 
httpRequest.onreadystatechange = function() { 
    if (httpRequest.readyState === 4) { 
     console.log(httpRequest.responseText); 
    } 
}; 
pmc.loading.start(); 
httpRequest.open('GET', url); 
httpRequest.send(); 

Ajax's error callback可太習慣:

$.ajax({ 
    url: url, 
    error: function(httpRequest){ 
     console.log(httpRequest.responseText); 
    } 
}); 

這是說,我不知道,從你的意見,如果你不會遇到與same origin policy相關的問題:如果網站的所有者沒有放置,你不能在javascript中讀取從另一個域發佈的頁面的內容the right headers

如果是這種情況,您不能在沒有網站所有者的同意的情況下純粹在客戶端進行任何操作。最簡單的方法就是在您的網站上添加一個代理服務器,就好像它來自您的網站一樣。

+1

+1這是一個使用'$ .get'的簡單演示:http:/ /jsfiddle.net/MFpRZ/ – David

+0

@大衛感謝有用的演示 –

+0

偉大的,它的作品。這是不同的起源政策 - 我正在使用greasemonkey。感謝您的快速回復。 – Stasik