jquery跨域,getJson跨域解决方案

前两天碰到跨域的问题, 其实用js很容易就解决了(如果是php中我们可以这样写echo "<script  language=\"JavaScript\" type=\"text/javascript\" src=\"http://www.xxxx.com?act=123\"></script>")

如果在html我们就直接可以用window.location.href= "";

但是这些都是有去无回的,我们并不知道在另一个服务器上是否执行成功

有同学会说用ajax,童鞋ajax是不能跨域的,如果ajax能跨域那就太不安全了,

但是我们可以通过GetJson来实现:

使用实例:js 中

var url = http://www.xxxxx.com?act=1223;

   jQuery.getJSON(url +”&jsoncallback=?”, function(data){

        alert(”return msg:” + data.msg);

    });

 

在服务端程序:

    $visitor = $_GET['name'];

    $callback = $_GET['jsoncallback'];

    $msg = ‘hello ‘ . $_GET['name'] . ‘, this is server B!’;

    //服务端返回

    $json_data = ‘{"msg”:" '. $msg . ‘”}";

    echo $callback . ‘('. $json_data . ‘)';

这样,在客户端得到的返回程序可能是:

    JQUET0988788({”msg”:”hello a, this is server B!”})

总之,我们要做的是两件事:

    1. 在请求地址里加上参数 jsoncallback=?

    2. 在服务端程序里把jsoncallback的值和数据一起返回,形如 $callback . ‘('.$json_data. )'

至此,问题解决了。

原文地址:https://www.cnblogs.com/zcm123/p/3052094.html