1.cors只要在服务器端添加一些响应头即可
-
让某个路由可以被跨域访问,就在那个路由里设置
//**************进行跨域访问的客户端代码**************
ajax({
type: 'get',
url: 'http://127.0.0.1:4000/cross',
success: function(data) {
console.log(data);
}
})
//**************被跨域访问的服务端代码**************
app.get('/cross', (req, res) => {
// *表示允许所有的客户端访问我
res.header('Access_Control-Allow-Origin', '*')
// 允许客户端使用哪些请求方法访问
res.header('Access_Control-Allow_Methods', 'get,post')
res.send('ok')
})
-
让所有路由都可以被跨域访问,被跨域访问的那个服务器这样设置 (上一个的完全版)
//********进行跨域访问的客户端代码************
同上
//********被跨域访问的服务端代码服务端代码************
// 让该服务器的所有路由都可被跨域访问
app.use((req, res, next) => {
// *表示允许所有的客户端访问我
res.header('Access-Control-Allow-Origin', '*')
// 允许客户端使用哪些请求方法访问
res.header('Access-Control-Allow-Methods', 'get,post')
// 使程序接着向下执行
next()
})
2.利用服务器访问跨域资源
- A服务器使用request模块访问B服务器 npm i request
- 配置A服务器
-
// 引入request库,供该服务器访问其他服务器用 const request = require('request'); //其中一个路由 app.get('/server', (req, res) => { request('http://127.0.0.1:4000/cross', (err, response, body) => { console.log(err); //如果出错,输出错误 console.log(response); //输出一个对象,是那个服务器响应回来的信息,包括状态码之类的 console.log(body); //输出OK res.send(body) }) })