2012-01-14 76 views
1

我目前正在进行跨域数据传输,并且已经打了一个非常大的块,我花了数小时的时间试图让这个工作起来,看起来好像要做到这一点是正确的,所以任何指针都会被大大接受。

我正在使用jquery & getJSON从php页面返回一个id,它是json_encodes数据;

我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将返回一个未定义的变量,我在哪里错了,这是疯狂驾驶!

谢谢大家!

+1

请一定要有一个真正的好理由使用同步('异步:FALSE')。您的页面将等待完成,如果没有,则页面无响应。通过在成功中调用后续函数来更好地找到解决办法,所以页面不会锁定? – Nanne 2012-01-14 14:05:27

回答

0

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

特别地,data参数$.getJSON()CGI参数被发送到服务器,而不是为arbirtrary $.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); 
    } 
}); 
+0

嗨,感谢您的快速响应,我已经从同一个域内工作,尽管我试图发送两个域 - 这是相同的$ .ajax调用吗? – dj10dj100 2012-01-14 14:25:31

+0

如果您要跨域,您需要PHP中的“Access-Allow-Origin”标头,或者JSONP输出 – Alnitak 2012-01-14 15:50:46

+0

非常感谢!一直在寻找AGES!再次感谢! – dj10dj100 2012-01-14 16:03:30