跨域--解决方法

1、后端处理 (开启跨域)

在发送数据给文件后台时的回调函数中,响应res的header给前端,即:

res.header('Access-Control-Allow-Origin','*')

2、Cors

适用条件:同一根目录下的不同项目

(1)终端安装模块:

npm i cors --save-dev

(2)app.js中,引入模块:

var cors=require("cors")

(3)app.js中,使用该模块:

app.use(cors())

3、http-proxy-middleware

适用条件:在express脚手架中使用,前端html必须跟后台同一服务器
实现原理:
将网络上的数据反向代理到本地服务器上,用nodejs作为中间层,用来转接网络上的数据,将数据转到nodejs上,才能很好地展示在页面上

以该网址数据为例: http://host810267499.s360.pppf.com.cn/herolist.json

#  1、终端安装模块:
npm i http-proxy-middleware --save-dev

#	2、app.js中,引入模块:
var proxy=require("http-proxy-middleware")

#	3、app.js中,使用该模块:
	app.use('/herolist.json',proxy({target:"http://host810267499.s360.pppf.com.cn",changeOrigin: true}))
	
#	4、ajax请求时的url,可以直接写为 /herolist.json

4、nginx(反向代理)

适用条件:前端和后端的ip地址相同,端口号不同的情况

eg: 跟后端进行数据联调时,获取后台数据需处理跨域问题,可以使用nginx反向代理解决跨域


安装网址:http://nginx.org/en/download.html (选择稳定版windows)


操作步骤:

1、双击nginx.exe启动,在浏览器输入:localhost:80(默认端口号80),出现欢迎页面,即安装成功
2、修改nginx文件夹中 --> conf文件夹 --> nginx.conf
3、nginx.conf中,关键代码修改:
(以ajax请求地址:http://localhost:3000为例)

   server {
        listen       8888;  # 修改端口号
        server_name  localhost;    #修改主机名

    	location /apis {    # 手动添加    用 /apis  替换 前端ajax请求的地址
		proxy_pass http://localhost:3000;
	}

4、将(xx.html)页面的ajax的url地址直接写 /apis --> 将该html页面剪切至nginx文件夹下的html文件下 --> 启动node 服务器

5、终端运行:nginx -s quit 先关闭,再双击开启 --> 以nginx的头部(localhost:8888)打开页面–>在网站输入: localhost:8888/xx.html

5、前端处理:jsonp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值