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

前端之家收集整理的这篇文章主要介绍了缺少使用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.

猜你在找的jQuery相关文章