【问题标题】:How to set request header strings [duplicate]如何设置请求标头字符串[重复]
【发布时间】:2011-11-19 00:45:03
【问题描述】:

我在安全站点上有一个 RESTful 服务。我可以在 Firefox 中使用 REST 客户端构建一个请求,但是当我尝试在代码中构建它时,我得到一个 401。这是我的代码

(function() {
                $.ajax({
                    url : "https://myrestsite",
                    type : "GET",
                    //beforeSend: function (req){
                    //  req.setRequestHeader("Authorization","myauthstring");
                    //  req.setRequestHeader("Content-Type", "application/json");
                    //},                        
                    headers : {
                        "Authorization" : "myauthstring",
                        "Content-Type" :  "application/json",
                    },      
                    success : function (){alert('we got here')}
                });
            })();

这在 FF 的 Web 开发者工具中显示为:

Request-Headers:authorization,content-type

当我需要(来自其余客户端是 FF)是:

Authorization:myAuthstring
Content-Type:application/json

关于我做错了什么的任何线索?

**edit - 结果我遇到了跨域限制。其他客户如何解决这个问题?

【问题讨论】:

  • 好吧,看来我对这项服务不走运,因为不允许使用 jsonp。我不知道我还能做什么。 dataType: 'jsonp' 返回错误。
  • 你无法绕过 cors 问题。您的 API 提供商必须将其添加到他们的标题中。我认为应该是 allow-cross-origin:* 其中 * 表示允许所有

标签: ajax jquery


【解决方案1】:

您可以将 contentType 作为选项传递给 $.ajax

$.ajax({
    ...
    contentType: 'application/json'
});

【讨论】:

    猜你喜欢
    • 2018-03-30
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    相关资源
    最近更新 更多