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