我尝试发出跨域请求。为了能够做到这一点,我必须设置一个http标头。
$.ajax({
type: 'GET',
url: 'api',
beforeSend: function (request)
{
request.setRequestHeader('authorization', 'Basic ...==');
},
success: function(data) {
debugger;
}
});
似乎已调用beforeSend 方法,但未设置“授权”标头。你能帮我解决这个问题吗?
更新:以下是收到的CORS标题:
Access-Control-Allow-Origin : localhost
Access-Control-Allow-Credential: true
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS
看起来 Access-Control-Allow-Headers 缺失。
答案 0 :(得分:2)
确保您的API支持CORS,Authorization
是允许设置的允许请求标头。当您向端点发送OPTIONS请求时,您的API应使用以下响应标头进行响应:
Access-Control-Allow-Headers:X-Requested-With, Content-Type, Authorization
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*
这允许客户端在调用API方法时设置X-Requested-With
,Content-Type
和Authorization
请求标头,并允许GET
,POST
,{来自任何原始域的{1}},PUT
,DELETE
个动词。
因此,为了调试问题,请先向您的API端点发送OPTIONS
请求,然后观察响应HTTP标头。