Node--egg框架基础(4)----跨域

Node–egg框架基础(4)----跨域

域名:以百度为例:https://baidu.com,其中的baidu.com就是它的域名。

跨域:通过一个域名访问到另一个域名的东西,它的详细解释如下:

1、广义的跨域:

(1)资源跳转:重定向、表单提交、a标签链接

(2)资源嵌入:link、script、img、iframe等标签以及样式表的url()方法等

(3)脚本请求:ajax请求、dom与js对象的跨域操作

2、狭义的跨域:相对于浏览器的跨域,因为浏览器的核心功能——同源策略而形成的跨域(同源策略即协议、域名、端口号都相同),浏览器拥有同源策略可以有效防止XSS、CSFR攻击。

(1)Cookie、Localstorage等无法读取

(2)dom和js对象无法获取

(3)ajax请求不能发送

在Node-egg中:

1、更改默认端口号:

在config文件夹中的config.default.js文件中添加:

exports.cluster = {
    listen: {
        port: 8000
    }
};

2、设置可以跨域访问的三个步骤:

(1)npm i egg-cors --save

(2)在config目录下面plugin.js文件中加入:

exports.cors = {
  enable: true,
  package: 'egg-cors',
};

(3)在config.default.js文件中加入:

exports.cors = {
	  origin:'*',
	  allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',

};

3、如果要设置cookie跨域:

(1)npm i egg-cors --save

(2)plugin.js:

exports.cors = {
  	enable: true,
  	package: 'egg-cors',

   	domainWhiteList: ['http://127.0.0.1:端口号自己设置'], 

};

(3)config.default.js:

exports.cors = {
	  origin:'http://127.0.0.1:与plugin中的端口号相同',
	  allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH',

 	  // 该属性允许cookie跨域
  	 credentials: true

}; 

发现一个非常详细的跨域解决方案的博客:
https://segmentfault.com/a/1190000011145364

猜你喜欢

转载自blog.csdn.net/qq_42602282/article/details/107808276