Cors 跨源响应中的vue资源标头不完全可用。

Cors 跨源响应中的vue资源标头不完全可用。,cors,vue.js,Cors,Vue.js,response.headers()在使用CORS时似乎解析了错误的头响应 看看这个: // REQUEST OPTIONS /mohsenin/loans HTTP/1.1 Host: mohsenin.app Connection: keep-alive Access-Control-Request-Method: GET Origin: http://mclient.app User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5

response.headers()在使用CORS时似乎解析了错误的头响应

看看这个:

// REQUEST 
OPTIONS /mohsenin/loans HTTP/1.1
Host: mohsenin.app
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mclient.app
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
Access-Control-Request-Headers: accept, authorization, crossorigin
Accept: */*
Referer: http://mclient.app/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fa;q=0.6

// RESPONSE
HTTP/1.1 200 OK
Server: nginx/1.9.3 (Ubuntu)
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Allow: GET,HEAD
Cache-Control: no-cache, private
date: Mon, 18 Jan 2016 09:54:44 GMT
access-control-allow-origin: http://mclient.app
Vary: Origin
access-control-allow-credentials: true
access-control-allow-methods: GET, POST, PUT, DELETE
access-control-allow-headers: ACCEPT, AUTHORIZATION, CROSSORIGIN
Content-Encoding: gzip
到目前为止还不错,这是在选项之后调用的GET请求:

// REQUEST
GET /mohsenin/loans HTTP/1.1
Host: mohsenin.app
Connection: keep-alive
Accept: application/json, text/plain, */*
Origin: http://mclient.app
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36     (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36
Authorization: Bearer [..OLDTOKEN..]
crossOrigin: false
Referer: http://mclient.app/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fa;q=0.6

//RESPONSE
HTTP/1.1 200 OK
Server: nginx/1.9.3 (Ubuntu)
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache
Date: Mon, 18 Jan 2016 09:54:44 GMT
Authorization: Bearer [..NEWTOKEN..]
Access-Control-Allow-Origin: http://mclient.app
Vary: Origin
Access-Control-Allow-Credentials: true
注意:数据由chrome开发工具收集。

问题是,当我在.then promise中使用response.headers()时,它只返回以下对象:

Object {content-type: "application/json", cache-control: "no-cache", "": ""}
我没有其他方法(据我所知)访问响应标题,甚至是原始文本标题

我做错了什么

我想这解释了你所看到的。在这一回答中,他们引用了:

在CORS请求期间,
getResponseHeader()
方法只能访问简单的响应头。简单响应头的定义如下:

  • 缓存控制
  • 内容语言
  • 内容类型
  • 到期
  • 最后修改
  • 布拉格马
如果希望客户端能够访问其他头,则必须使用
访问控制暴露头
头。此标头的值是要向客户端公开的以逗号分隔的响应标头列表


因此,如果您控制正在调用的api,则可以通过设置
访问控制公开头
头向客户端公开其他头。

谢谢。我迷路了。现在我又被找到了。