跨域
js出于安全方面的考虑,不允许跨域调用其他页面的对象,
主域名、子域名、协议、端口号相同的页面调用不算跨域,
主域名、子域名、端口号、协议中任意一个不同的调用叫做跨域
处理跨域方法一——代理
1.北京服务(域名:www.beijing.com)
2.上海服务(域名:www.shanghai.com)
在北京的web服务器的后台(www.beijing.com/proxy-shanghaisevice.php)来调用上海服务器(www.shanghai.com、sevice.php)的服务,然后把响应结果给前端,前端直接调用北京同域名的服务和调上海得相同了
处理跨域方法二——jsonp(只支持get请求不支持post请求)
//在www.aa.com页面中:
<script>
function jsonp(json){
alert(json["name"])
}
</script>
<script src="www.bb.com/jsonp.js"></script>
//在www.bb.com页面中:
jsonp({
'name':'hongqi',
'age':'2222'
})
实例中的应用:
$.ajax({
dataType:"jsonp",
jsonp:"callback"
//后端要获取:$jsonp=$_GET["callback"];
//后台返回值:
//$result=$jsonp.'({"success":"false","msg":"没有找到"})'
})
处理跨域方法三——xhr2(ie10以下不支持)
在服务器端做一些改造:
header(‘Access-Control-Allow-Origin:*’);
header(‘Access-Control-Allow-Methods:POST,GET’)