Jquery Ajax进行跨域时需要使用JSONP,但JSONP格式和JSON格式是有区别的,如果直接返回JSON格式就会报错
首先将原有的Jquery代码中的dataType改成“jsonp”,具体代码如下:
$.ajax({
url: "http://ajax.yoursite.com/api.php",
async: false,
dataType: "jsonp",
jsonp: "callback",
success: function( json ){
alert( json );
}
});
PHP代码的修改比较快速,只需要将原先的代码最后修改并增加一行就可以了。在此处假定$data为需要输出的数据(数组):
$callback = isset( $_GET[ 'callback' ] ) ? $_GET[ 'callback' ] : 'callback';
echo $callback . '(' . json_encode( $data ) . ')';