我已经在SO上看了很多类似的问题,但到目前为止,没有一个解决方案有效。我发现当我在IE,cURL或Postman中测试时,它运行正常。但是在Chrome 56中,我得到了:
请求标头字段不允许授权 预检响应中的Access-Control-Allow-Headers。
检查由chrome制作的预检请求返回的标头,看起来正在返回正确的标头。那么为什么Chrome不跟随POST进行跟进?
找到相关问题:AJAX function w/ Mailgun, getting "ERROR Request header field Authorization is not allowed by Access-Control-Allow-Headers"。试着做同样的事情。最大的问题是如何阻止Chrome发送预检请求?
代码:
$.ajax({
type: "POST",
url: url,
headers: {
"Authorization": "Basic " + btoa(user + ":" + pass)
},
data: {
from: "someEmail@mycompany.com",
to: "robot@mycompany.com",
subject: "New Message",
text: textbody
},
success: function (){
alert('Thanks for your comment!');
}
});