有無論如何檢查傳入請求是否是AJAX JSON類型?PHP檢查傳入請求是否是JSON類型
我試圖
if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}
但沒有奏效。
有什麼想法?
有無論如何檢查傳入請求是否是AJAX JSON類型?PHP檢查傳入請求是否是JSON類型
我試圖
if(($_SERVER['REQUEST_METHOD']=='JSON'))
{
}
但沒有奏效。
有什麼想法?
你是哪裏,就是這樣,你不知道接受請求?
您可以在腳本的開頭嘗試將數據導入爲JSON或simplexml。如果它發現一個錯誤,你知道它是另一個...
第二個想法,它測試它是JSON,simplexml將拋出一個錯誤,原因很多。
$json_request = (json_decode($request) != NULL) ? true : false;
你可以在接受PARAM檢查,如果它的文本/ JavaScript的你說話的JSON,如果它的文本/ xml的猜測:P
$ _ SERVER [ 'HTTP_ACCEPT']
假設JavaScript程序將正確設置XMLHttpRequest的標題,這是從來沒有做過的(誰在乎?)。一般來說,服務器端腳本只能以一種格式回答,而我看不出有什麼不同的原因。 – Havenard 2009-09-04 06:42:59
當您請求某個頁面或服務(點擊URL)時,它是一個標準過程,您應該指定您在請求中預期的結果類型。我曾經在許多Web服務上工作,用戶期望XML或JSON中的信息,以便在請求參數中指定它。其他明智的是,他們必須提供URL的擴展名,比如說說 somesite.com/get_user[.xml |以.json。許多自由職業者,如澤西等在Java中,jQuery和幾個PHP自定義捲髮庫都附加在請求(標準的通信方式)標題中的這些信息。在每個請求中傳遞額外的參數 – 2015-01-27 17:56:22
當瀏覽器使用任何站點的服務(或URL)進行通信時,他們會指定'text/html',如果dataType設置爲json,jQuery會在請求頭中設置'application/json', dataType:'json''及以上變量如下 'application/json,text/javascript,*/*; q = 0.01' 瀏覽器打開的URL將顯示 'text/html,application/xhtml + xml,application/xml; q = 0.9,image/webp,*/*; q = 0.8' – 2015-01-27 18:00:55
嘗試json_decode( )
您需要從客戶端設置標題。 jQuery和其他圖書館設置x-requested-with
標題:
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
echo "Ajax request";
}
你總是可以設置一個額外的頭指定,或使用任意的變量來表示JSON請求。
http://stackoverflow.com/questions/1322863/what-is-the-best-way-inside-a-controller-to-know-if-the-request-is-a-xmlhttp-on – bobince 2009-09-04 09:10:32
注意,mime是application/json。 – Dykam 2009-09-04 09:30:48