繁体   English   中英

ajax,json,外部网址加载数据

[英]ajax, json, external url load data

我有问题,请帮助

我有2个网站,我想互相发送数据

第一个站点:

          var site_adres = $(location).attr('href');

          var myArray = site_adres.split('/');

          var site_adi_al = myArray[2];

          $.getJSON('xxx.com/site/admin.php?site_adres='+ site_adi_al +'',  

            {},
        function (data) {  

         $.each( data, function ( i, val ) {

         var id=val['id'];
         var site_adi=val['site_adi'];
         $(".site_adi").append('<li>'+id+' >> <a href="'+site_adi+'"   
         target="_blank">'+site_adi+'</a></li>');



          });

第二个站点:

                     $site_adi = $_GET["site_adi"];

/ *查询* /

              $query = mysql_query("SELECT * FROM site WHERE site_adi = '$site_adi'");
            if ( mysql_affected_rows() ){
              $row = mysql_fetch_object($query);
              $json = array(
              "id" => $row->id,
              "site_adi" => $row->site_adi
                  );
             }else{
              $json["hata"] = "Nothing !";
                 }
          header("access-control-allow-origin: *");
          echo json_encode($json);

结果为零,出了什么问题,请帮助

您有两个基本问题(除了在问题注释中解释的安全性问题之外)。

  1. 您正在发送site_adres但正在读取$_GET["site_adi"] 如果没有显式编写代码以某种方式链接它们,则不能对同一事物使用不同的名称。
  2. 您遍历data$.each( data, function ( i, val ) { ,好像它是对象的数组,但你的PHP只发送单个对象(这是不是在一个数组)。你应该直接访问data的属性,而不使用eachval

您应该在您的网络服务器上设置CORS,以允许它们相互获取数据,因为您使用的是php,所以我假设您使用的是Apache:

Header set Access-Control-Allow-Origin "*" 

将*替换为您其他网站的IP地址,反之亦然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM