首页 文章

jQuery AJAX调用导致错误状态403被禁止

提问于
浏览
0

我正在尝试对API进行简单的jquery ajax调用:

My Code:

$.ajax({
        origin: "*",
        url: 'http://example/test',
        type: 'get',
        contentType: 'application/json; charset=utf-8',
        dataType: 'jsonp',
        crossDomain: true,
        beforeSend: function (xhr) {
                        xhr.setRequestHeader("API_KEY", 'xxx');
                        xhr.setRequestHeader("Authorization", 'xxx');
                    },
                    success: function (data) {
                    });
                },
                error: function () {
            }
        });

Api正确使用授权并返回正确的数据,但在我从JQuery ajax调用它时会出现错误403 Forbidden .

Response Header:

HTTP / 1.1 403 Forbidden Cache-Control:no-cache Pragma:no-cache Content-Type:text / javascript; charset = utf-8过期:-1服务器:Microsoft-IIS / 8.5 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET日期:2017年3月19日星期三13:00:19 GMT内容长度:127

Request Headers:

接受:/ Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en; q = 0.8 Cache-Control:no-cache连接:keep-alive主机:sp16-app:2525 Pragma:no-cache引用站点:HTTP:// XXX /测试

1 回答

  • 0

    请注意,您无法发送 jsonp 请求的标头,这是一个脚本请求 . 你确定你想要 jsonp 而不是 json 吗?

    GET 没有请求 contentType ,因为没有发送正文内容 .

    此外,你有一个拼写错误,但是,我想,这只是StackOverflow答案的一个错字:

    xhr.setRequestHeader("API_KEY", 'xxx;
    

    改成

    xhr.setRequestHeader("API_KEY", 'xxx';
    

    另请参阅this answer .

相关问题