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