2012-03-24 69 views
1

我想在加载页面时发送json RPC ajax请求。这里是我的javascript代码:Json RPC jquery ajax调用

$(document).ready(function() { 
     var data="orderID=<?=$_POST['orderID'];?>&&lang=eng"; 
     $.ajax({ 
      url: "ajax/get_json_variables.php", 
      type: "POST",  
      data: data,  
      cache: false, 
      success: function (html) { 
       var splited=html.split("|"); 
       if(splited[0]=="0") 
       { 
        alert(splited[1]); 
       } 
       else 
       { 
        $.ajax({ 
         url: "https://91.199.226.106/ssljson.php", 
         type: "POST",  
         data: splited[1],  
         cache: false, 
         dataType:"json", 
         success: function (html) { 
          alert(html); 
         } 
        }); 
       } 
      } 
     }); 
    }); 

随着第一个ajax请求,我得到第二个请求的json字符串。谷歌浏览器给我这个错误:

XMLHttpRequest cannot load https://91.199.226.106/ssljson.php. Origin http://www.nver.am is not allowed by Access-Control-Allow-Origin. 

我不明白是什么问题?感谢帮助。

+1

非常常见的错误。这是因为“91.199.226.106”和“www.nver.am”不一样。他们**必须**相同 – 2012-03-24 08:04:55

回答

2

问题是由于Same Domain Policy,它可能会非常棘手工作。如果你不使用jQuery,你可以通过几种方法来解决这个问题,并且仍然可以实现所需的功能,那就是使用iframe和跨域消息帮助程序(如EasyXDM),或动态注入标签以特殊格式获取JSON称为JSONP

谢天谢地,你正在使用jQuery,所以你可以使用http://api.jquery.com/jQuery.getJSON/和JSONP来解决同源策略。