关于前端调用后端php数据跨域的问题
https://blog.csdn.net/qq_21386275/article/details/87269979
js前端
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript" src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<title>jsonp跨域示例</title>
</head>
<script>
//下边的请求相当于发送的是:http://***/test/jsonp.php?callback=getMessage
$.ajax({
url:"http://***/test/jsonp.php",//你请求的地址
type:"get",
cache:false,
dataType:"jsonp",
jsonp:"callback", //传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"getMessage", //自定义的jsonp回调函数名称
success:function(data){
console.log("success:"+data['b']);
},
error:function(){
alert("发生异常");
}
});
//下边这个函数可以注释调,也会走success,这是jQuery的功劳。jquery在处理jsonp类型的ajax时(虽然jquery也把jsonp归入了ajax,但他们根本不是一回事儿),自动生成回调函数并把数据取出来供success属性方法来调用。
function getMessage(jsonp){
console.log("message:"+jsonp);
}
</script>
php 部门
<?php
header('Content-Type:application/json; charset=utf-8');
$handler = $_GET['callback'];//这里的callback与ajax中jsonp的值对应
$data = array('a'=>'aaa','b'=>'中文');//发送到前端的数据
exit($handler.'('.json_encode($data,JSON_UNESCAPED_UNICODE).');');