webApi 正在使用 headers 请求,如何获得响应
webApi is using headers request,how to get the response
url 是 'http://..*/api/v2/******/slide-ads?role=C&showType=app&type=activity'
方法是'get'
headers 设置
key 'appVer'
value '4.0.0'
如果我使用邮递员
您可以获得 JSON object,
但是使用 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))
服务器返回的响应是错误信息:
$ 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
.
中文翻译为“Couldn't get the current version number.”
并且该错误响应也不包括 Access-Control-Allow-Origin
响应 header,因此您的浏览器将不允许您的前端 JavaScript 代码访问响应 body.
对于 cross-origin 请求,CORS 协议要求浏览器禁止从前端代码访问响应主体,除非响应中包含 Access-Control-Allow-Origin
。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 有更多详细信息。
url 是 'http://..*/api/v2/******/slide-ads?role=C&showType=app&type=activity'
方法是'get'
headers 设置
key 'appVer'
value '4.0.0'
如果我使用邮递员
您可以获得 JSON object,
但是使用 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))
服务器返回的响应是错误信息:
$ 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
.
中文翻译为“Couldn't get the current version number.”
并且该错误响应也不包括 Access-Control-Allow-Origin
响应 header,因此您的浏览器将不允许您的前端 JavaScript 代码访问响应 body.
对于 cross-origin 请求,CORS 协议要求浏览器禁止从前端代码访问响应主体,除非响应中包含 Access-Control-Allow-Origin
。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS 有更多详细信息。