Как определить запрос перекрестного домена ajax в php

Для обычного запроса ajax я использую:

strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' 

Но это не работает с запросом на перекрестный домен.

Как я могу сделать?

Related of "Как определить запрос перекрестного домена ajax в php"

Edit2: Если вы используете функцию jQuery.ajax следующим образом:

 var request = $.ajax({ url: "http://somesite.com/somescript.php?somevar=somevalue", dataType: "jsonp", jsonp: 'callback', success: function(data) { alert('Done!'); } }); 

Затем вы можете проверить переменную $_SERVER['REQUEST_URI'] или просто $_GET['callback'] и $_GET['_'] . REQUEST_URI будет выглядеть так:

/somescript.php?somevar=somevalue&callback=jQuery172028849187534502896_1333494007273&_=1333494443880

Изменить: нижеприведенный ответ заключается в том, чтобы узнать, является ли он междоменным или нет, а не проверяет, является ли это AJAX

Ответ на вопрос «Как определить, является ли ajax-вызов из другого домена»:

Я использую вызов jQuery.ajax, и для меня использование переменной $_SERVER['HTTP_REFERER'] отлично работает.

Если я использую страницу на своем локальном компьютере, этот суперглобал возвращает пустую строку.

Если я использую страницу в Интернете, значение $_SERVER['HTTP_REFERER'] возвращает URL-адрес страницы, сделавшей вызов ajax. Поэтому проверка значения этого может рассказать вам, что вам нужно знать.

используйте $ _SERVER ['HTTP_ORIGIN'], чтобы получить домен запроса

вы можете использовать функцию getallheaders () php. вы можете проверить запись хоста