>我正在尝试使用$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
。
要处理此问题,您需要做的就是发送一个空响应。
添加此额外检查是为了确保设计为仅接受GET
和POST
请求的旧APIs
不会被利用。想象一下,当这个动词不存在时,向设计的API
发送DELETE
请求。结果是不可预测的,结果可能是危险的。