Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有多部分自定义头的jQuery ajax请求?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 具有多部分自定义头的jQuery ajax请求?

Javascript 具有多部分自定义头的jQuery ajax请求?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个基本的ajax请求,我正试图用它附加一个自定义头: _auth=1,[my_apikey], 我可以使用postman处理相同的请求,它正确地返回json响应。请求失败,出现401:Unauthorized,因此我相信我的头没有正确附加 如何正确地将多部分自定义头添加到ajax请求中? 完整ajax请求: $(function(){ $.ajax({ url: "https://r-test.ordr.in/dl/ASAP/10012/New%20York/568

我有一个基本的ajax请求,我正试图用它附加一个自定义头:

_auth=1,[my_apikey],
我可以使用postman处理相同的请求,它正确地返回json响应。请求失败,出现
401:Unauthorized
,因此我相信我的头没有正确附加

如何正确地将多部分自定义头添加到ajax请求中? 完整ajax请求:

$(function(){
   $.ajax({
        url: "https://r-test.ordr.in/dl/ASAP/10012/New%20York/568%20Broadway?_auth=1,3EJjhE07gEYumzByF9hM0c3q7xjf1ZiZOOwngk1MCoU",
        dataType: 'jsonp',
        headers: {"X-NAAMA-CLIENT-AUTHENTICATION": "id='[my_apikey]', version='1'"},
        success: function(response){alert(response)},
        error: function(jqXHR, status, error){alert(error)}
    });
});
来自开发工具的请求头:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Cookie:SS_MID=14f520bc-d926-4ff3-a5cc-f5c682b758f5hrl1wmzt; ss_cid=cc24fc87-e81d-4ed6-a313-24e04cfbfd72; __utma=86046534.1735612382.1392236906.1392746695.1392826972.3; __utmc=86046534; __utmz=86046534.1392236906.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __auc=2a449d7614427c94751a82169e5
Host:r-test.ordr.in
Pragma:no-cache
Referer:http://localhost:8000/curate/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36
邮递员回复示例:

[
    {
        "id": 32096,
        "na": "Nuchas",
        "cs_phone": "212-363-0120",
        "rds_info": {
            "id": 186,
            "name": "delivery.com",
            "logo": ""
        },
        "services": {
            "deliver": {
                "time": 2865,
                "mino": 144,
                "can": 0
            }
        },
        "allow_tip": 1,
        "allow_asap": 1,
        "cu": [
            "Empanadas"
        ],
        "addr": "1514 Broadway, New York, NY",
        "full_addr": {
            "addr": "1514 Broadway",
            "addr2": "",
            "city": "New York",
            "state": "NY",
            "postal_code": "10036-4002"
        },
        "city": "New York",
        "latitude": 40.757627,
        "longitude": -73.985512,
        "del": 2865,
        "mino": 144,
        "is_delivering": 0
    },
]

我认为您不能对所述资源进行ajax调用,因为jsonp不允许自定义头,并且所述资源不支持CORS

因此,我能看到的唯一可行的解决方案是让您的web服务器充当代理,通过向web服务器发送ajax请求,调用远程资源获取值,一旦获取值,服务器就可以将结果返回给客户端


此外,由于远程资源是具有API密钥的安全资源,因此将密钥发送到客户端是不明智的,因为任何人都可以看到并使用它。

您可以使用浏览器开发人员工具的网络检查请求头吗tab@ArunPJohny与负责人一起更新为什么使用jsonp?如果是这样的话,我想您可能会运气不佳,请参阅@ArunPJohny更新了设置标题的解决方法。我使用jsonp是为了绕过访问控制源。问题仍然是服务器是否支持jsonp