为了账号安全,请及时绑定邮箱和手机立即绑定

node 跨域访问

node 跨域访问

慕容708150 2019-03-18 21:18:43
访问node服务器跨域,post请求变成了options,设置请求头后,获取不到post请求提交的数据var http = require('http');var url = require("url");http.createServer(function (req, res) {    var urlObj = url.parse(req.url);    var pathname = urlObj.pathname;    // 关闭nodejs 默认访问 favicon.ico    if (!pathname.indexOf('/favicon.ico')) {        return;     };     let requestM=req.method;    res.writeHeader(200,{        "access-control-allow-origin": "*",        "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS",        "access-control-allow-headers": "Content-Type,Content-Length, Authorization, Accept,X-Requested-With",        "access-control-max-age": 10,        "Content-Type": "application/json"    });    if(requestM==="POST"){        var post = '';                  // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中                req.on('data', function(chunk){                        post += chunk;                });    }    //获取不到post 请求过来的参数}).listen(3000);
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

怎么post数据的,贴出来看下
另外我觉得在res写头没有必要写allow header 你的需求要求这么高吗

查看完整回答
反对 回复 2019-03-30
?
隔江千里

TA贡献1906条经验 获得超10个赞

options请求是浏览器行为,因为跨域时浏览器(某些)会发送一个options请求来测试,如果这个请求被响应,才会进行后面的正常请求。

所以你只要针对options请求返回一个200的状态码即可。


查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 2574 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号