使用jsonp实现跨源请求

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);
});
上一篇:由一次PasswordBox密码绑定引发的疑问 ---> WPF中的附加属性的定义,以及使用。


下一篇:VUE专题 elementUI自定义校验方式 form-item