AngularJS为跨源资源执行OPTIONS HTTP请求=>错误401

时间:2014-12-16 09:12:21

标签: javascript angularjs web-services rest cors

我正在尝试使用$ resource从REST Web服务获取数据。

这是我的代码:

    return $resource('http://serverURL', {}, {

                getQuartiers: {
                    method: 'GET',
                    headers:  {
                             'Authorization': 'Basic base64login:pseudostring',
                     },

                },


          });

问题是,对于这样的标题,它是一个发送的选项请求,我收到错误401 Unauthorized。 如果我删除标题,那就是GET请求。 但我需要标头来发送我的授权字符串!

否则,通过将chrome直接转到url =>,web服务就可以了。使用login / pwd =>弹出窗口以json格式更正数据 或者使用postman chrome extension,它发送GET请求。

什么事?

1 个答案:

答案 0 :(得分:1)

您似乎无法处理预检Options 请求

您的Web API需要响应Options请求,以确认其确实已配置为支持CORS

要处理此问题,您需要做的就是发回空响应

添加了此额外检查,以确保不会利用仅用于接受APIsGET请求的旧版POST。想象一下,当{em>动词不存在时,向DELETE发送API请求。结果是不可预测的,结果可能危险