2013-05-14 41 views
0

我想確定是否從jQuery $.ajax()方法對我的REST API發出了請求。

之前回答這個問題與添加一個布爾值,發送到服務器的數據明顯答案之一,或者通過將報頭,我不想這樣做......

顯然,這可以實現像這樣:

$.ajax({ 
    data: { 
     sentViaAjax: 'true' 
    } 
}); 

然而,由於各種原因,我想布爾/附加的頭保持從代碼隱藏。

因此,我想知道的是,jQuery將任何其他數據以任何特定形式發送到服務器時,它發出請求?

我試過打印出$_REQUEST數組,但是這個數組中除了我發送的數據外沒有其他東西。是否有任何獨特的標題需要注意?如果是這樣,他們是否可靠,如在,他們會一直在那裏?

+0

'$ _SERVER ['HTTP_X_REQUESTED_WITH']'? – zerkms 2013-05-14 11:04:42

+0

@zerkms這聽起來像我正在尋找的東西!我可以依靠它嗎?它是否在所有瀏覽器(現代瀏覽器)中發送? – 2013-05-14 11:05:35

+0

看到這個:: http://stackoverflow.com/questions/4301150/how-do-i-check-if-the-request-is-made-via-ajax-with-php – 2013-05-14 11:05:41

回答

6

的jQuery發送以下頭部非跨域ajax請求:

X-Requested-With: XMLHttpRequest

所以,你可以尋找的請求頭。

+0

我沒有看到,在我的Chrome AJAX請求... – Alnitak 2013-05-14 11:06:28

+1

@Alnitak:你應該,我這樣做。確保你正在查看* request *標題,而不是響應標題。 – 2013-05-14 11:06:39

+0

它不在Chrome的devtools的網絡監視器部分中列出的請求標頭中。我還沒有看看服務器本身收到了什麼。 – Alnitak 2013-05-14 11:07:25