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);
const data = JSON.stringify({ state: "succeess" });
const reqdata = `${params.query.callback}(${data})`;
res.writeHead(200, { "Content-Type": "text/javascript" });
res.end(reqdata);
});