2014-11-15 67 views
0

下面的代碼片段工作正常,但它停止突然無緣無故Ajax調用返回301永久移動突然

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

從檢查被調用並打開瀏覽器工作正常,它在開發和生產上都工作得很好。 有什麼想法?

*編輯 問題已修復,api調用缺少www,因此調用被重定向爲使用www,因此出現301錯誤。

雖然這固定了問題,但我無法解釋,因爲這是很久以前使用的方式,突然它停止工作!

反正我以爲我應該發佈修復,以便有人可以找到有用的。

謝謝

+0

你查詢你自己的域名,還是別人的?也許他們阻止了你。 – RST

+0

301狀態是非常罕見...... 你的服務器之間移動?改變了DNS重定向? – Aviad

+0

可能是他們移動到其他位置或切換到https:// – Ashish

回答

1

這是您的API或第三方的API?此狀態碼意味着此資源已永久移至新網址,無法再通過此網址進入。如果它不是您自己的API,則必須檢查位置標題以獲取新的資源位置。使用檢查員檢查此標題。

只是爲了澄清,看看下面的RFC:

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

301永久移動

的301(永久移動)狀態代碼表示目標 資源已被分配一個新的永久URI,並且任何對該資源的引用都應該使用其中一個隨附的URI。 具有鏈接編輯功能的客戶應儘可能將 對有效請求URI的引用重新鏈接到服務器發送的一個或多個新的 引用。

約Location頭這部分會談 - >

服務器應該在包含新的永久URI優選的URI引用的響應 產生位置報頭字段。 用戶代理可以使用Location字段值進行自動 重定向。服務器的響應有效載荷通常包含一個帶有到新URI的超鏈接的短文本超文本記錄。

4

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

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

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

如果在響應中找不到替代網址,那麼Web服務器可能存在一些問題,或者在Web服務器端沒有正確設置網址重定向。

正如您所說,當您在瀏覽器中打開相同的URL時,請仔細注意顯示哪個URL實際顯示,因爲如果瀏覽器收到來自Web服務器的301消息,它可能會默默地切換到替代URL。