在nodejs中使用AXIOS发送get请求到其他IP请求数据时,会报错Access-Control-Allow-Origin
之类的错误.
要解决的需要前端与webserver端共同配合才行. 因为我的webserver是ARM板子,响应请求数据中HTTP HEAD信息只有HTTP/1.1 200 OK\n
,这显然不够.
经过查找资料,增加对应的http head信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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); |
前端如果这样写不行
1 2 3 4 |
Vue.axios .get('http://192.168.10.208:9000/action/jsonTest',{withCredentials:true}) .then(response => (console.log(response))) |
改为以下写法就可以了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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); }) |