CORS:即跨域資源共享,它允許瀏覽器向跨域服務(wù)器發(fā)送ajax請求
與JSONP的區(qū)別:
jsonp是繞過了同源限制,發(fā)送的也不是ajax請求。
CORS這種解決方案,主要就是在服務(wù)器端做一些配置客戶端保持原有的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()
})
另一種解決思路

即,先向自己的服務(wù)器發(fā)送請求,再讓自己的服務(wù)器向別人的服務(wù)器發(fā)送請求。這個時候需要用到一個第三方模塊叫request
跨域時的cookie

image.png

image.png

image.png