1.什么是跨域?
跨域是由浏览器的同源策略构成的,是浏览器对 js 的安全限制。
简单说就是:浏览器不能执行去他网站的脚本
例如:localhost:8080 不能调用 localhost:8081
域名、端口号、协议任一不同就是跨域。
2.怎么解决跨域
-使用nginx代理
-JSONP
3.使用JSONP
跨域获取后台数据示例;
前台请求:
$.ajax({
type : "get",
async:false,
url : "http://localhost:8080/user/1",
dataType : "jsonp",//jsonp数据类型
jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数
jsonpCallback:"jsonpCallback",
success : function(data){
//处理数据
},
error:function(json){
}
})
后台数据返回格式:
return "jsonpCallback"+"("+JSON.toJSON(result)+")";
这样就能接收到后台的数据了。 注意数据样式,jsonpCallback 可自定义