【问题标题】:How to send HTTP headers from client via JQuery AJAX call to PHP script?如何通过 JQuery AJAX 调用从客户端向 PHP 脚本发送 HTTP 标头?
【发布时间】:2016-02-15 05:57:49
【问题描述】:

我在服务器上使用设备检测 PHP 脚本,mobiledetect.net,通常用户的浏览器会直接调用服务器上的那个,所以很明显检测脚本会获取所有 HTTP 标头(它使用用于设备检测)直接这种方式。

如果我通过 JQuery AJAX 调用从用户浏览器上运行的 javascript 调用相同的服务器端 PHP 检测脚本,它是否会像使用直接方法一样接收检测所需的所有 HTTP 标头?即 JQuery 是否允许或设置脚本上的 AJAX 调用的所有 HTTP 标头,就像浏览器直接允许的那样?

如果没有,请问我该如何实现?

检测脚本需要的标头有: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_ORANGE_ID、HTTP_X_VODAFONE_3GPDPCONTEXT、HTTP_X_HUAWEI_USERID、HTTP_UA_OS、 HTTP_X_MOBILE_GATEWAY、HTTP_X_ATT_DEVICEID、HTTP_UA_CPU

非常感谢。

【问题讨论】:

    标签: php jquery ajax http mobile-website


    【解决方案1】:

    是的,您可以在 ajax 调用中设置 HTTP 标头:

    $.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);
        }
      });
    

    请在此处找到更多信息:Add Header in AJAX Request with jQuery。 要获取 HTTP 标头的值,请使用以下代码:

    var req = new XMLHttpRequest();
    req.open('GET', document.location, false);
    req.send(null);
    var headers = req.getAllResponseHeaders().toLowerCase();
    alert(headers);
    

    更多信息here

    【讨论】:

    • 好的,谢谢,但我不想自己设置自定义标头,我想通过上面提到的标头,浏览器将通过直接页面请求设置。我如何在 JQuery 中引用它们,以便按照您描述的方式传递它们?谢谢!
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2019-03-14
    • 2014-02-16
    • 2022-06-24
    • 2016-01-09
    • 1970-01-01
    相关资源
    最近更新 更多