2011-03-17 69 views
1

我有这样的代码,是由香港专业教育学院,即设定提醒在代码忽略,我已经引脚点的误差为Ajax调用Javascript使用ajax jquery和json不能使用IE或chrome帮助!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
     <head> 
     <title>Website</title> 
<script type="text/javascript"> 

     $.ajax({ 
       url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo", 
             success: function(data){ 
              ...code 
     } 
     }); 
</script>..body.. etc... 

代码工作完全在Firefox。但是 的$。 AJAX({});呼叫在IE和Chrome中完全被忽略..任何人都知道为什么?在此先感谢...

+2

那么你的第一件事就是缺少你的脚本标记......'' – jon3laze 2011-03-17 02:36:25

+1

这段代码是否从geonames.org运行? – Cameron 2011-03-17 02:36:42

+0

我有我的脚本标签..我没有把他们放在这里..对不起。是的,它从geonames.org运行 – xiaolin 2011-03-17 03:20:38

回答

4

你错过了<script>标签,你知道,jQuery?此外,由于这是一个跨站点请求,请确保您实际上正确处理这个jsonp。

没有发布你的实际代码我认为这是我们能做的最好的。

+0

我试过使用crossDomain:true,但那并没有解决它。 – xiaolin 2011-03-17 03:27:41

2

我只能添加到迈克尔·哈伦已经表示,自己从中得到的网址是:

{"status":{"message":"the daily limit of 30000 credits demo has been exceeded. Please throttle your requests or use the commercial service.","value":18}}

0

正如指出的那样,你错过了脚本标记以及实际路径到jQuery的文件,你需要用你的Ajax调用与文件准备好所以...

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> // Latest jquery from google 
<script type="text/javascript"> 
    $(function() { 
     // -- Your Code Here 

    }); 
</script> 
0

你要告诉在URL的末尾添加&callback=?

http://api.geonames.org/earthquakesJSON?...&username=demo&callback=? 
0

一两件事,会阻止从阿贾克斯在Chrome/Safari的工作,但仍然允许它工作在Firefox中离开了阿贾克斯命令的dataType领域。例如:

$.ajax({ 
    type: 'Get', 
    url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo", 
    success: function(data){ 
     var jsonArray = jQuery.parseJSON(data); 
     alert(jsonArray.status.message); 
    } 
}); 

将输出的JSON数组的元素value从URL 只返回如果跑在Firefox。为了得到这个AJAX在Chrome中工作,你必须包括dataType场和删除jQuery.parseJSON像这样:

$.ajax({ 
    type: 'Get', 
    url: "http://api.geonames.org/earthquakesJSON?north=44.1&south=-9.9&east=-22.4&west=55.2&username=demo", 
    dataType: 'json', 
    success: function(data){ 
     var jsonArray = data; 
     alert(jsonArray.status.message); 
    } 
}); 

如果这样离开了,或者你尝试做它,它会出现在其他的方式,因为它是跳过你的ajax一起。我希望这能解决你的问题。