首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置我的请求头?

如何设置我的请求头?
EN

Stack Overflow用户
提问于 2017-04-19 20:41:21
回答 2查看 153关注 0票数 1

我正在尝试使用jquery从api中提取数据,但收到了一个错误

加载资源失败:服务器响应状态为401 (未授权)

我已经将url设置如下:

代码语言:javascript
复制
url: "https://jsonodds.com/api/odds/soccer"

我试着用两种不同的方法设置头文件,

首先

代码语言:javascript
复制
headers: {
                    'JsonOdds-API-Key', key
}

还可以使用beforesend函数

代码语言:javascript
复制
beforeSend: function (xhr) {
                        xhr.setRequestHeader("JsonOdds-API-Key", key);
                    }

我已经定义了我的键。我已经测试了postman上的url和头文件,它返回了数据,这会不会是我写的其他代码的问题?

EN

回答 2

Stack Overflow用户

发布于 2017-04-19 20:47:15

jQuery中的ajax调用示例

代码语言:javascript
复制
      $.ajax({
         url: "https://jsonodds.com/api/odds/soccer",
         data: { signature: authHeader },
         type: "GET",
         beforeSend: function(xhr){xhr.setRequestHeader('JsonOdds-API-Key', key);},
         success: function() { alert('Success!'); }
      });

我发布了一个完整的示例,因为在操作中我看到了调用的不同部分,我想确保您正确地构建了它。

希望它能帮上忙!

更新1:

代码语言:javascript
复制
data: {}

要发送到服务器的

数据。它将转换为查询字符串(如果还不是字符串)。它被附加到GET-requests的url中。请参见processData选项以防止此自动处理。对象必须是键/值对。如果value为数组,jQuery将根据传统设置的值序列化具有相同键的多个值

检查文档,它将是您成功编码的指导原则:http://api.jquery.com/jquery.ajax/

另外,这篇文章对你也很有用:How do I return the response from an asynchronous call?

干杯!;)

票数 1
EN

Stack Overflow用户

发布于 2017-04-19 20:47:38

这段代码应该可以工作;

代码语言:javascript
复制
$.ajax({ 
    url: 'https://jsonodds.com/api/odds/soccer', 
    headers: { 
        'JsonOdds-API-Key': key 
    } 
});

401错误也可能是错误API-key的结果。请检查是否正确,您可以通过打开developer tools -> Network -> Filter -> 'api/odds/soccer‘->单击右侧的request ->滚动并检查Request header部分,查看是否已发送自定义标头。

更新

该应用程序接口不允许常规的前端ajax调用,因为它们需要ApiKey作为标头,并且不允许跨域请求。要绕过跨域请求,您可以发送JSONP请求,但您不能通过JSONP请求发送自定义头,因此如果您必须发送自定义头(api键),则无法绕过跨域问题。

(索引):1 XMLHttpRequest无法加载https://jsonodds.com/api/odds/soccer。对印前检查请求的响应未通过访问控制检查:请求的资源上不存在“access - control -Allow-Origin”标头。因此不允许访问源'https://www.finnair.com‘。响应的HTTP状态代码为401。

测试Curl时,Api键正确。在终端中粘贴以下内容;

curl -X GET https://jsonodds.com/api/odds -H "JsonOdds-API-Key: yourapikey"

您需要使用一些服务器端解决方案来处理对Api的调用,例如NodeJS或PHP。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43496071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档