继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP使用ajax跨域获取json数据的两种方法

函数式编程
关注TA
已关注
手记 54
粉丝 14
获赞 30

一.采用JSONP跨域获取数据。(优点:兼容大部分浏览器包括IE6。缺点:获取数据以Get获取较不安全)

  前端JS代码: 

 $.ajax({

     "url" : "http://www.liubf.com/Bang/post_jsonp.php",

      "type" :"GET",

      "dataType": "JSONP",

      "data": {

          "loginuser" : $("input[name=loginuser]").val(),

          "loginpass" : $("input[name=loginpass]").val()

      }, 

      "success":function(response,status,xhr){

         for (var i  in response){

             alert(i  +  "---" +response[i]);

         }

       },

       "error":function(xhr,errorText,errorStatus){

           alert("ajax访问错误:" + xhr.status + " " +xhr.statusText ); 

       }               

 });

   服务器代码:

$arr = array("user" => $_GET['loginuser'] , "pass" => $_GET['loginpass'] ,"c" =>130);

$_result = json_encode($arr);

$callback  = $_GET['callback'];

echo $callback."($_result)";

二.采用CORS(跨域源资源共享)获取数据。(优点:以POST数据加密方式获取,较安全。缺点:不兼容IE9及IE9以下浏览器)

  前端代码:

 $.ajax({

     "url" : "http://www.liubf.com/Bang/post_jsonp.php",

      "type" :"POST",

      "dataType": "JSON",

      "data": {

          "loginuser" : $("input[name=loginuser]").val(),

          "loginpass" : $("input[name=loginpass]").val()

      }, 

      "success":function(response,status,xhr){

         for (var i  in response){

             alert(i  +  "---" +response[i]);

         }

       },

       "error":function(xhr,errorText,errorStatus){

           alert("ajax访问错误:" + xhr.status + " " +xhr.statusText ); 

       }               

 });

   服务器端代码:

header("Access-Control-Allow-Origin:*"); //*号可以修改 限制为IP

$arr = array("user" => $_POST['loginuser'] , "pass" => $_POST['loginpass'] ,"c" =>130);

$_result = json_encode($arr);

echo $_result;

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP