Я использую PHP-скрипт для обнаружения устройств на сервере, mobiledetect.net и обычно браузер пользователя напрямую обращается к нему на сервере, и поэтому очевидно, что скрипт обнаружения будет получать все заголовки HTTP (которые он использует для обнаружения устройства) напрямую таким образом.
Если я вызываю тот же сценарий обнаружения PHP на стороне сервера с помощью вызова JQuery AJAX из моего javascript, запущенного в браузере пользователя, получает ли он все заголовки HTTP, необходимые для обнаружения, как это было бы с прямым методом? т.е. разрешает ли JQuery или устанавливает все заголовки HTTP для вызова AJAX в скрипте, как это сделал бы браузер напрямую?
Если нет, то как бы я достиг этого, пожалуйста?
Заголовки, которые требуются для сценария обнаружения: HTTP_ACCEPT, HTTP_X_WAP_PROFILE, HTTP_X_WAP_CLIENTID, HTTP_WAP_CONNECTION, HTTP_PROFILE, HTTP_X_OPERAMINI_PHONE_UA, HTTP_X_NOKIA_GATEWAY_ID, HTTP_X_H_X_X_X_EX_X_EX_X_GE_GE_ORG, HTTPE_X_X_OR_HE
HTTP_X_MOBILE_GATEWAY, HTTP_X_ATT_DEVICEID, HTTP_UA_CPU
Большое спасибо.
Да, вы можете установить заголовки HTTP в вашем вызове ajax:
$.ajax({
url: 'YourRestEndPoint',
headers: {
'header1':'xxxxxxxxxxxxx',
'herader2':'xxxxxxxxxxxxxxxxxxxx',
'Content-Type':'application/json'
},
method: 'POST',
dataType: 'json',
data: YourData,
success: function(data){
console.log('succes: '+data);
}
});
Пожалуйста, найдите больше информации здесь:Добавить заголовок в запрос AJAX с помощью jQuery.
Чтобы получить значение заголовков HTTP, используйте следующий код:
var req = new XMLHttpRequest();
req.open('GET', document.location, false);
req.send(null);
var headers = req.getAllResponseHeaders().toLowerCase();
alert(headers);
Дополнительная информация Вот
Других решений пока нет …