jsonp跨域
- 服务器代码
const json = JSON.stringify(result);
//返回的 callback({"a":"1","b":"2"});
const script = `callback(${json})`;
// 设置响应头 并发送script
res.header("content-type",'application/javascript').send(script);
- 客户端
<script>
function callback(data){
//这里就会打印后端传来的数据
console.log(data);
}
</script>
<script src="服务器地址"></script>
- 客户端代码改进
function jsonp(url){
const script = document.createElement('script');
script.url = url;
document.body.appendChild(script);
script.onload = function(){
//移除页面中加载完成的script元素
script.remove();
}
}
function callback(data){
console.log(data);
}
jsonp('服务器地址');
- jsonp的缺陷
- 严重影响服务器的正常响应格式
- 只能用与get请求
CORS跨域
Access-Control-Allow-Origin:http://my.com