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



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

这是我的代码:

    return $resource('http://serverURL', {}, {
                getQuartiers: {
                    method: 'GET',
                    headers:  {
                             'Authorization': 'Basic base64login:pseudostring',
                     },
                },

          });

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

否则,网络服务是可以的,要么使用 chrome 直接转到带有登录/pwd 的 url => 弹出窗口 => 以 json 格式更正数据或者使用邮递员 chrome 扩展程序,该扩展程序发送 GET 请求。

怎么了?

您似乎没有处理预检Options请求

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

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

添加此额外检查是为了确保设计为仅接受GETPOST请求的旧APIs不会被利用。想象一下,当这个动词不存在时,向设计的API发送DELETE请求。结果是不可预测的,结果可能是危险的

相关内容

最新更新