当ajax请求的url域名与当前域名不一致时,由于浏览器的保护机制,会报错:No ‘Access-Control-Allow-Origin’ header is present on the requested resource.这时,我们可以采用jsonp,跨域请求进行访问。
ajax请求之jsonp
$.ajax({
type : "post",
url : "http://localhost:8090/index/test",
data: {'playerid': 1000023},
dataType : "jsonp",
success : function(json){
console.log(json);
},
error:function(){
alert('fail');
}
});
php之数据解析
public function test(){
if($_GET){
$data = ['hello' => '张三'];
$callback = $_GET['callback'];
exit($callback.'('.json_encode($data).')');
}
}
结果
注意
ajax请求的时候,dataType设置为 “jsonp”
php处理的时候,需要取到”callback”传递的参数,并以$callback.(“”)回传回去