jsonp跨域访问数据,例:得到其他地址的天气接口

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数据,数据在非域的地方,这种情况我们就可以使用以上的方法了

相关推荐