2011-03-17 67 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一起。我希望這能解決你的問題。