NodeJS的跨域-CORS
阿新 • • 發佈:2021-10-20
跨域指的是不同源相互請求,傳遞資訊或資料
CORS是一個W3C標準,全稱是"跨域資源共享"(Cross-origin resource sharing)。
它允許瀏覽器向跨源伺服器,發出XMLHttpRequest請求,從而克服了AJAX只能同源使用的限制。
CORS需要瀏覽器和伺服器同時支援。目前,所有瀏覽器都支援該功能,IE瀏覽器不能低於IE10。
整個CORS通訊過程,都是瀏覽器自動完成,不需要使用者參與。對於開發者來說,CORS通訊與同源的AJAX通訊沒有差別,程式碼完全一樣。瀏覽器一旦發現AJAX請求跨源,就會自動新增一些附加的頭資訊,有時還會多出一次附加的請求,但使用者不會有感覺。
因此,實現CORS通訊的關鍵是伺服器。只要伺服器實現了CORS介面,就可以跨源通訊。
我們可以利用NodeJS實現CORS跨域
var express = require("express"); var app = express(); app.get("/",(req,res)=>{ //配置請求的域名,*代表任意 res.header("Access-Control-Allow-Origin", "*"); // 支援跨域請求型別 res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); //配置請求頭資訊,包含字符集等等 res.header("Content-Type", "application/json;charset=utf-8"); res.json({ a:100 }) }) app.listen(3000,function(){ console.log(3000) })