微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

缺少使用CORS响应jQuery请求的标头

我正试图用 jquery购买执行CORS请求我得到了奇怪的行为.当我使用curl执行请求时,一切正常.但是当我使用jQuery时,事情发生了可怕的错误.在我的浏览器的“网络”选项卡中,我可以检查请求和来自后端的响应那里一切都是正确的 但是虽然我有Access-Control-Expose-Headers:Set-Cookie标头当我尝试时我得到null使用console.log打印出来(response.getResponseHeader(“Set-Cookie”));当我尝试使用console.log(response.getAllResponseHeaders())在控制台中打印出我的ajax请求的响应头时,我只得到这3个头:
Pragma: no-cache
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Expires: 0

我用来执行请求的代码是:

$.ajax({
    method: "POST",url: "http://localhost:8808/storage/login",data: {
        username: email,password: password,},success: function(data,textStatus,response){
        console.log(response.getAllResponseHeaders());
        console.log(response.getResponseHeader("Set-Cookie"));
        this.setState({showAlert: true,alertMessage: "You are logged in.",alertType: "success"});
    }.bind(this),error: function (xhr,status,err) {
        this.setState({showAlert: true,alertMessage: "Wrong email or password",alertType: "danger"});
    }.bind(this)
});

解决方法

您是在提出跨域请求吗?

http://www.html5rocks.com/en/tutorials/cors/

During a CORS request,the getResponseHeader() method can only access
simple response headers. Simple response headers are defined as
follows:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

If you want clients to be able to access other headers,you have to use the Access-Control-Expose-Headers header. The value of this header is a comma-delimited list of response headers you want to expose to the client.

原文地址:https://www.jb51.cc/jquery/176406.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐