【问题标题】:jquery $.getJSON returning undefined variable, JSON data presentjquery $.getJSON 返回未定义的变量,存在 JSON 数据
【发布时间】:2012-01-14 13:57:55
【问题描述】:

我目前正在处理跨域数据传输,我遇到了一个非常大的问题,我花了好几个小时试图让它工作,这似乎是正确的方法,所以任何指针会很受欢迎。

我正在使用 jquery 和 getJSON 从 json_encodes 数据的 php 页面返回一个 id;

我的jquery代码是`

 $.getJSON("http://www.icetrack.it/scripts/php/data/ipAddress.php",

    {    
        location: locationVar,
        user_key: user_key,
        refer: refer,
        title: title,   
        async:false,        
        dataType: 'json',
        success: function(data) {

             alert(data);
        }
                 },"json"); 

它与一个只输出其他内容的 php 页面对话,

echo json_encode(array("id"=>"$id")); ?>

此页面输出 JSON 格式

{"id":"198"} 

然而我所有的 jquery 将返回一个未定义的变量,我哪里出错了,这太疯狂了!

谢谢大家!

【问题讨论】:

  • 确保有充分的理由使用同步 (async:false)。您的页面将等待此完成,如果没有完成,它将变得无响应。最好通过调用成功的后续函数找到解决方法,这样页面就不会锁定?

标签: jquery json get undefined


【解决方案1】:

您将错误的参数传递给 $.getJSON() - 您提供的许多参数仅适用于 $.ajax()

特别是,$.getJSON()data 参数用于发送到服务器的CGI 参数,而不是用于任意$.ajax() 参数。

试试这个:

$.ajax({
     url: "http://www.icetrack.it/scripts/php/data/ipAddress.php",
     data: {    
        location: locationVar,
        user_key: user_key,
        refer: refer,
        title: title
     },
     async:false,        
     dataType: 'json',
     success: function(data) {
         alert(data);
     }
 });

【讨论】:

  • 您好,感谢您的快速响应,我已经在同一个域内完成了这项工作,尽管我正在尝试跨两个域发送 - 这是同一个 $.ajax 调用吗?
  • 如果你要跨域,你要么需要在 PHP 中使用 Access-Allow-Origin 标头,要么需要 JSONP 输出
  • 非常感谢!一直在寻找AGES!再次感谢!
猜你喜欢
  • 1970-01-01
  • 2010-11-29
  • 2020-06-30
  • 2019-05-28
  • 2020-11-29
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多