簡體   English   中英

Ajax呼叫返回301突然突然移動

[英]Ajax call return 301 permanently moved suddenly

下面的代碼段運行正常,但突然停止,沒有明顯原因

jQuery.ajax({
            url: "http://example.com/api/getstuff.php?Location="+location+"&token="+token,              
            type: 'GET',
            dataType: 'json',
            success:function(data){
            if(data.success == '0'){
                alert("success");
            }
            else
            {
            alert(data.error);
            }

        });

當我復制從檢查器調用的api的URL並在瀏覽器中打開時,它可以正常工作,在開發和生產上都可以正常工作。 有任何想法嗎?

* edit該問題已解決,api調用缺少www,因此該調用被重定向為使用www,因此出現301錯誤。

盡管這解決了問題,但由於這是很久以前使用的方式,所以我無法解釋,突然它停止了工作!

無論如何,我認為我應該發布此修復程序,以便有人可以找到有用的信息。

謝謝

當您嘗試訪問的資源或URL已被移動或重定向到另一個URL時,通常會發生此錯誤。

在這種情況下,來自Web服務器的響應始終包含備用URL。

更新您的代碼以將請求發送到該備用網址。

如果在響應中找不到備用URL,則Web服務器可能存在問題,或者在Web服務器端未正確設置URL重定向。

正如您說的那樣,當您在瀏覽器中打開該URL時,它是有效的,請仔細注意實際上顯示了哪個URL,因為如果瀏覽器從Web服務器接收到301消息,則它可能會默默地切換到替代URL。

這是您的API還是第三方API? 此狀態代碼表示該資源已永久移動到新的URL,因此無法再通過該URL進行訪問。 如果不是您自己的API,則必須檢查Location標頭以獲取新的資源位置。 使用檢查器檢查此標頭。

為了澄清起見,請看下面的RFC:

鏈接: http//tools.ietf.org/html/rfc7231#section-6.4.2

301永久移動

301(永久移動)狀態碼表示已為目標資源分配了新的永久URI,以后對該資源的任何引用都應使用其中的一個URI。 具有鏈接編輯功能的客戶端應在可能的情況下自動將對有效請求URI的引用重新鏈接到服務器發送的一個或多個新引用。

這部分討論位置標頭->

服務器應該在響應中生成一個Location頭字段,其中包含新的永久URI的首選URI引用。 用戶代理可以使用位置字段值進行自動重定向。 服務器的響應有效負載通常包含一個簡短的超文本注釋,其中包含指向新URI的超鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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