Javascript AngularJS对跨源资源执行选项HTTP请求=>;错误401

Javascript AngularJS对跨源资源执行选项HTTP请求=>;错误401,javascript,angularjs,web-services,rest,cors,Javascript,Angularjs,Web Services,Rest,Cors,我试图使用$resource从RESTWeb服务获取数据 这是我的密码: 返回$resource('http://serverURL', {}, { 获取四分位数:{ 方法:“GET”, 标题:{ “授权”:“基本Base64登录:伪字符串”, }, }, }); 问题是,对于这样的头,它是一个发送的选项请求,我得到一个错误。 如果我删除了头,那就是GET请求。 但是我需要标题来发送我的授权字符串 否则,Web服务就可以了,或者使用chrome直接进入url=>弹出窗口,使用login/pwd

我试图使用$resource从RESTWeb服务获取数据

这是我的密码:

返回$resource('http://serverURL', {}, {
获取四分位数:{
方法:“GET”,
标题:{
“授权”:“基本Base64登录:伪字符串”,
},
},
});
问题是,对于这样的头,它是一个发送的选项请求,我得到一个错误。 如果我删除了头,那就是GET请求。 但是我需要标题来发送我的授权字符串

否则,Web服务就可以了,或者使用chrome直接进入url=>弹出窗口,使用login/pwd=>json格式的正确数据 或者使用postman chrome扩展发送GET请求


怎么了?

您似乎没有处理飞行前
选项
请求

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

要处理这个问题,您只需发送一个空响应


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

您的头请求似乎没有问题,我在我的web api项目中使用过类似的东西。我认为问题在于您的web服务器,而不是您的JS代码。检查你的后端代码。去检查Cors。那是你的问题。这是一个获得401的飞行前准备。因为使用带有选项请求的邮递员可以很好地工作,我认为这不是服务器配置问题!?我不太明白…你说的是服务器配置,不是吗?实际上,服务器发送响应:Access Control Allow header:Authorization Access Control Allow Methods:GET Access Control Allow Origin:*等等,但我的头似乎没有正确发送:是的,这是在服务器端的API配置上。使用Postman,选项请求头有以下行:Authorization:使用我的代码的基本mystring,而是:访问控制请求头:接受,授权,所以我认为我的头没有正确发送!?