adonislu 2020-05-10
jsonp跨域访问数据
由于出于HTTP安全问题考虑,ajax是不能获取非本域的文件的。
但是我们可以通过scrip的src请求其他页面。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jsonp</title> </head> <body> <script type="text/javascript"> function fun(data){ console.log(data[1]); } </script> <!-- 用scrip引用相当于调用 fun() 函数,PHP可以将参数传过来,这样就可以得到数据了。src可以请求写其他网络地址--> <script type="text/javascript" src="jsonp.php?_jsonp=fun"></script> </body> </html>
PHP输出fun(参数)就可以带参数的调用方法了
<?php $callback = $_GET[‘_jsonp‘];//得到fun字符串 $arr = array("zhangsan","lisi","zhaoliu"); echo $callback."(".json_encode($arr).")";//拼接成 fun($arr) ,html就可以调用方法了 ?>
举个例子,如何访问天气网的json数据,数据在非域的地方,这种情况我们就可以使用以上的方法了