我有一個服務器端點的AJAX調用301做重定向到同一頁面,但有一個結尾的斜槓。301在AJAX上重定向 - 重定向?
瀏覽器在使用AJAX調用時是否遵循重定向,還是忽略它們?在我的情況下,它不遵循它們,但我想它可能是從服務器配置的東西。
我有一個服務器端點的AJAX調用301做重定向到同一頁面,但有一個結尾的斜槓。301在AJAX上重定向 - 重定向?
瀏覽器在使用AJAX調用時是否遵循重定向,還是忽略它們?在我的情況下,它不遵循它們,但我想它可能是從服務器配置的東西。
如果你正在使用jQuery,你可以看看下面的問題來實現它。默認情況下,jQuery的(和使用Ajax最庫)不遵循重定向默認:
How to manage a redirect request after a jQuery Ajax call
How to prevent ajax requests to follow redirects using jQuery
也許這個答案是有點晚了,但我有對於ajax請求的301響應同樣存在問題。該解決方案是非常簡單:
阿帕奇重寫規則是這樣的:
RewriteRule ^([^/]\w+)/?$ index.php?%{QUERY_STRING} [L,E=MODULE:$1]
你XHR請求的URL看起來成才這樣的:
/this/is/a/canonical/url + '?param=1¶m=2...'
這將導致301永久移動如果您不使用直接文件調用(fi * .php),並重寫爲規範URL(看起來像不帶fi * .php的目錄路徑),則可以改爲。
爲了解決這個問題,只需添加/你XHR請求的URL是這樣的:
/this/is/a/canonical/url + '/' + '?param=1¶m=2...'
也許這將幫助別人。
這爲我修好了,謝謝 –
根據jQuery的API文檔(http://api.jquery.com/jQuery.ajax/),async:false
(又名同步模式)不支持跨域請求和dataType: "jsonp"
請求。
對不起,但是這個問題與這個問題有什麼關係? –
@EduardLuca對不起,您的重定向不會跨域。 – GlacJAY
我不需要跨越另一個域,重定向發生在同一個URL上,但是以斜線結尾。 –
我也有這個問題,關於結尾的斜線的建議,讓我想......我在我的web.config重寫規則,使一切小寫字母,這就是被搞亂了我的AJAX調用。我發佈到GetResults(顯示爲301)和我的重寫器(出於某些未知原因?),將其更改爲較低的getresults GET,結果爲404。
好,所以jQuery不遵循重定向,我明白了。謝謝。 –
恩,沒有。 XHR將透明地遵循重定向。 –
並非在所有情況下。我有一個301重定向設置和FF不會跟着他們。然而,Chrome確實如此。 – threejeez