关于前端调用后端php数据跨域的问题

Posted 代码改变世界,技术改变生活!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于前端调用后端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).‘);‘);

以上是关于关于前端调用后端php数据跨域的问题的主要内容,如果未能解决你的问题,请参考以下文章

前端跨域的三种解决方案

thinkphp5 关于跨域的一些坑,附上解决办法(比较全面了)

关于跨域的处理的几种方法的整理

关于跨域的问题

怎么解决跨域问题

相关前台跨域的解决方式