webApi正在使用标头请求,如何获取响应

时间:2017-07-31 15:08:52

标签: cors http-headers cross-domain fetch-api

网址是'http:// 。* / api / v2 / ****** / slide-ads?role = C& showType = app& type = activity'

方法是'get'

标头设置

            key 'appVer'


          value   '4.0.0'

如果我使用邮递员

您可以获取JSON对象

但是使用fetch或jquery,我无法得到响应!

var vheaders = {
  "appVer": "4.0.0"          
};
fetch(URL, {
    method: "GET",
    headers: vheaders
})
.then(res => res.json())
.then(data => console.log(data))
.catch(e => console.log("Oops, error", e))

1 个答案:

答案 0 :(得分:0)

服务器返回的响应是错误消息:

$ curl -i -H "Origin: http://example.com" \
'http://123.56.230.49/api/v2/freekeers/slide-ads?role=C&showType=app&type=activity'
HTTP/1.1 422 Unprocessable Entity
Server: nginx/1.8.0
Date: Mon, 31 Jul 2017 20:30:23 GMT
Content-Type: application/json;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive

{"code":"0000","message":"请求无法获取当前版本号"}

注意HTTP/1.1 422 Unprocessable Entity

中文文本转换为“无法获取当前版本号。”

该错误响应也不包含Access-Control-Allow-Origin响应标头,因此您的浏览器不允许您的前端JavaScript代码访问响应正文。

对于跨源请求,CORS协议要求浏览器禁止从前端代码访问响应主体,除非响应中包含Access-Control-Allow-Origin

https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS有更多详情。