如何使用json从外部URL接收数据?

时间:2014-01-14 07:58:44

标签: javascript php ajax json

最近我正在学习json来创建app。我对基于PHP的Json聊天系统有疑问。 在这里,代码适用于相同的原始策略。但是从外部url发送和接收数据,它成功地将数据发送到外部php.But没有从服务器接收任何数据。我在互联网上搜索来解决这个问题,并找到了jsonp作为替代。我试过jsonp,但我不确定我是否正确,因为我是ajax本身的新手。

请不要误解我的问题。我想从localhost加载index.html文件,当我向外部URL发送请求时(anysite.com/xx/ajax.php)。它处理并返回数据到index.html。但问题是我的数据被精确地发送并在服务器上处理但是它没有返回到远程文件。但它对于同一服务器工作正常。

$.tzPOST = function(action,data,callback)
{
    $.post('http://anysite.com/xx/ajax.php?action='+action,data,callback,'json');
}

$.tzGET = function(action,data,callback){
    $.get('http://anysite.com/xx/ajax.php?action='+action,data,callback,'json');
}

请帮我一个代码。

2 个答案:

答案 0 :(得分:0)

由于政策原因,您无法通过JavaScript从外部网络接收JSON。

但是您可以在PHP文件上执行AJAX请求,并且可以通过file_get_content http://cz2.php.net/file_get_contents函数获取JSON。

答案 1 :(得分:0)

对于jsonp使用(工作),您可以从GitHub获取准备好的解决方案jquery-jsonp

使用示例(由您提问):

$.tzGET = function(action,data,callback){
  var url = 'http://anysite.com/xx/ajax.php?action='+action;

  $.jsonp({
   type: 'GET',
   url: url,
   callbackParameter: callback,
   dataType: 'jsonp',
   data: data,
   timeout: 10000,
   success: function(json){
     alert('success')
   },
   error: function(){
      alert('error')
   }
});