[英]Why Is My catch Block Not Catching “Cross origin requests are only supported for protocol schemes: http…”
我有一個JavaScript腳本,該腳本正在使用jquery post
命令登錄服務器並獲取令牌。 我已經將代碼包裝在一個try
塊中,並帶有一個catch
塊,如下所示:
catch (error)
{
alert(error.message);
}
我的代碼運行良好,但為了對其進行全面測試,我有意更改了協議,以便url如下所示:
"htt://some.domain:8080/jsonrpc"
我的代碼未捕獲錯誤並顯示警報。 而是,Chrome控制台顯示以下錯誤:
XMLHttpRequest無法加載htt://some.domain:8080 / jsonrpc。 跨源請求僅支持以下協議方案:http,數據,chrome,chrome擴展名,https,chrome-extension-resource。
我期望某種形式的url異常,而不是控制台中的錯誤。
其他故意錯誤(例如不正確的密碼)的結果將導致捕獲異常。
謝謝
因為Ajax是異步的。 該錯誤發生在try / catch塊之外。
通過將狀態更改為0
,可以在XMLHttpRequest中檢測到此類錯誤。 (盡管此狀態代碼還涵蓋了其他一些錯誤狀態,所以您可能不太准確)。
當狀態為0時,將觸發可傳遞給jQuery ajax的error
處理程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.