jsonp
- 該技術用來實作跨源請求,即向協定、域名、端口号不同的伺服器發送請求
- 通過使用 script 标簽的 src 向伺服器發送GET請求
http://xxx/xxx?callback=callbackFunction
- 伺服器傳回的是一串 javascript 并且會立刻在用戶端執行
callbackFunction(data)
例子:
// 用戶端
function usejsonp() {
const script = document.createElement("script");
script.src = "http://127.0.0.1:8000/test?callback=jsonp";
script.addEventListener("error", () => {
console.log("error");
});
document.body.appendChild(script);
}
function jsonp(data) {
console.log(data);
}
// 伺服器端
app.get("/test", (req, res) => {
const params = new URL(req.url, req.headers.referer);
res.writeHead(200, { "Content-Type": "text/javascript" });
const data = JSON.stringify({ state: "succeess" });
const reqdata = `${params.searchParams.get("callback")}(${data})`;
res.end(reqdata);
});