什么是跨域问题:
例如我们在百度的网站下,则我们的域可以表示为[baidu.com],如果我们想要请求淘宝域下[taobao.com]的资源,那我们就是从一个域跨到另一个域,就会出现跨域的资源共享的问题CORS开发中常常会遇到这样的问题:接口在一个端口 ,前端的服务则在另一个端口上,从前端服务获取接口的时候就会出现跨域问题
如何解决
1官方解决方案 :设置请求头
response.setHeader("Access-Control-Allow-Origin","*")
2jsonp
<script>
function handle(data){
const res=document.getElementById("result");
res.innerHTML=data.name;
}
</script>
<script src="http://127.0.0.1:8000/jsonp-server"></script>
服务器中:
//jsonp 服务
app.all('/check-username',(request,response)=>{
//response.send('console.log("hello jsonp server")');
const data={
exsit:1,
msg:"用户名已经存在"
};
//转换成字符串
let str=JSON.stringify(data);
//返回结果 其实是一个函数调用 并利用参数 做数据处理 函数必须事先声明 这就是jsonp的原理 响应的是js代码
response.end(`handle(${str})`);
});