簡體   English   中英

為什么我的catch塊無法捕獲“協議方案僅支持跨源請求:http…”

[英]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.

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