在 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);
})
正文完