ajax,json,外部URL加载数据

时间:2014-08-19 13:45:10

标签: javascript php jquery ajax json

我有问题,请帮忙

我有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 * /

              $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);

结果为零,有什么不对,请帮忙

2 个答案:

答案 0 :(得分:0)

您有两个基本问题(除了问题评论中解释的安全问题)。

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

答案 1 :(得分:-1)

您应该在网络服务器上设置CORS以允许他们互相提取数据,因为您使用的是php,我会假设您正在使用apache:

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

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