PHP проверяет, является ли входящий запрос JSON-типом

Есть ли все-таки, чтобы проверить, является ли входящий запрос AJAX JSON?

Я пытался

if(($_SERVER['REQUEST_METHOD']=='JSON')) { } 

Но это не сработало.

Есть предположения?

Где вы принимаете запросы, точно, что вы не знаете?

У вас может быть функция в начале скрипта, который пытается импортировать данные как JSON или simplexml. Если он поймает ошибку, вы знаете, что это другая …

Во-вторых, попробуй, чтобы это было JSON, simplexml выведет ошибку по множеству причин.

  $json_request = (json_decode($request) != NULL) ? true : false; 

Вам нужно будет установить заголовок с клиентской стороны. В jQuery и других библиотеках задан заголовок x-requested-with :

 if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { echo "Ajax request"; } 

Вы можете проверить заголовок X-Requested-With , некоторые библиотеки, например jQuery, установите его в "XMLHttpRequest" .

 $isAjaxRequest = $_SERVER['X_REQUESTED_WITH'] == 'XMLHttpRequest'; 

Вы можете сделать проверку на accept param, если это текст / javascript вашего говорящего json, если это текст / xml, угадайте, что: P

$ _SERVER [ 'HTTP_ACCEPT']

Попробуйте json_decode ()

вы всегда можете установить дополнительный заголовок, указав это, или использовать произвольную переменную для указания запросов JSON.