2012-12-13 32 views
0

是否有任何理由使用附加的GET參數(如'ajax = 1')來檢測ajax請求,而不是僅檢查服務器端的'X-Requested-With'頭?使用get參數檢測Ajax請求的原因

如果我們不確定客戶端使用的JS框架是否傳播標題,這可能是有意義的,但是如果我們知道我們有什麼優勢呢?有什麼情況可以派上用場嗎?

+3

AJAX請求不僅限於GET方法。你將如何實現這個POST,PUT,DELETE等?爲什麼服務器端代碼首先依賴於「X-Requested-With」頭文件? –

回答

0

實際上,瀏覽器向服務器發送的AJAX請求或典型頁面刷新沒有區別。

如果你想要你可以嘗試像Fiddler這樣的工具,那麼你會意識到這兩個請求都是一樣的。

如果您確實想要檢測請求是否作爲AJAX請求發出,則只有可靠的方法是爲請求顯式添加一些值。可以將它添加到網址中,如ajax=1或者在自定義HTTP標頭中,或者在發出POST請求的情況下在請求正文中。

+0

是的,我明白這一點。我的意思是頭部方法似乎好得多(不同類型的請求處理方式相同,沒有其他變量與實際的POST和GET數據相混雜,依賴於URL的代碼不會中斷),我開始懷疑它是否具有一些隱藏的缺點,因爲有人在那裏使用參數方法(例如Rails,據我所知)。 – Krotton