CPRS解决跨域问题 -- 基于vue-cli创建的demo项目日记
发布在NodeJS+Express建站日记2017年7月28日view:1319YiksiAssowExpressvue跨域
在文章任何区域双击击即可给文章添加【评注】!浮到评注点上可以查看详情。

问题

在前端(http://localhost:8080)异步向后端服务(http://localhost:3000)发出请求,报错:

XMLHttpRequest cannot load http://192.168.102.82:3000. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.

查找资料,跨域主要问题在header.

header详解:http://kb.cnblogs.com/page/92320/

于是,了解header,对header进行设置,问题迎刃而解了。

解决

1、Access-Control-Allow-Origin 允许的域

2、Access-Control-Allow-Headers 允许的header类型

3、Access-Control-Allow-Methods 允许的header请求类型

代码如下:

//解决跨域问题
app.all('*',function (req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
  res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');

  if (req.method == 'OPTIONS') {
    res.send(200);
  }
  else {
    next();
  }
});

参考资料:http://cnodejs.org/topic/51dccb43d44cbfa3042752c8

评论
发表评论
暂无评论
WRITTEN BY
执笔的蜗牛
Life is like the ocean
TA的新浪微博
PUBLISHED IN
NodeJS+Express建站日记

记录在学习NodeJS+Express建站过程和总结、心得。

我的收藏