在nodejs中使用AXIOS发送get请求到其他IP请求数据时,会报错Access-Control-Allow-Origin
之类的错误.
要解决的需要前端与webserver端共同配合才行. 因为我的webserver是ARM板子,响应请求数据中HTTP HEAD信息只有HTTP/1.1 200 OK\n
,这显然不够.
经过查找资料,增加对应的http head信息如下:
result = 5;
// HTTP内容
int dataLen = sprintf(n1, "{ \"result\": %lf }", result );
// 发送 HTTP 响应
mg_printf(nc, "HTTP/1.1 200 OK\n"
"Content-Type: application/javascript\n"
"Access-Control-Allow-Origin: *\n"
"Access-Control-Allow-Headers: X-Requested-With,Content-Type\n"
"Access-Control-Allow-Methods: PUT,POST,GET,DELETE,OPTIONS\n"
"Content-Length: %d\n"
"Cache-Control: no-cache\n\n"
"%s\n", dataLen,n1);
前端如果这样写不行
Vue.axios
.get('http://192.168.10.208:9000/action/jsonTest',{withCredentials:true})
.then(response => (console.log(response)))
改为以下写法就可以了
Vue.axios({
url: "http://192.168.10.208:9000/action/jsonTest",
method: 'get',
data: {
id: 3,
name: 'jack'
}
})
.then(function (res) {
console.log(res.data);
})
.catch(function (err) {
console.log(err);
})
正文完