CORS:即跨域资源共享,它允许浏览器向跨域服务器发送ajax请求
与JSONP的区别:
jsonp是绕过了同源限制,发送的也不是ajax请求。
CORS这种解决方案,主要就是在服务器端做一些配置客户端保持原有的ajax代码不变即可
app.get('/CORS',(req,res)=>{
// * 代表允许所有的客户端来访问
res.header('Access-Control-Allow-Origin','*')
//允许哪些请求方式访问我
res.header('Access-Control-Allow-Methods','get,post')
res.send('OK')
})
但是,难道我们需要为每个路由都添加这两行代码吗?这样代码将会有很高都冗余度。
解决方法:
使用express的中间件拦截所有请求.
app.use(function(req,res,next){
res.header('Access-Control-Allow-Origin','*')
//允许哪些请求方式访问我
res.header('Access-Control-Allow-Methods','get,post')
next()
})
另一种解决思路
即,先向自己的服务器发送请求,再让自己的服务器向别人的服务器发送请求。这个时候需要用到一个第三方模块叫request
跨域时的cookie
image.pngimage.png
image.png
网友评论