2011-04-18 63 views
0

我想使用jQuery函數來獲取Web服務響應,但得到錯誤405說方法不允許。當我複製在Web瀏覽器中粘貼相同的字符串時,我得到的XML結果沒有錯誤。下面是我使用問題使用jquery閱讀googleapi響應

[ 
var arr= new Array(); 
     var loopCounter = 0; 
     alert("Before Ajax") 
     $.ajax({ 
      type: "GET", 
      url: "http://maps.googleapis.com/maps/api/directions/xml?origin=ajax&destination=toronto&region=ca&avoid=tolls&sensor=false", 
      dataType: "xml", 
      success: function(xml) { 
       alert("I am working"); 
       $(xml).find('distance').each(function() { 
        arr[loopCounter] = $(this).find('text').text(); 
        alert("Some Value Of Distance = "+arr[loopCounter]); 
        loopCounter += 1; 
       }); 

      } 
     });] 

回答

2

你需要使用什麼是JSONP跨域請求:

如果URL中包含字符串 「?回調=」 (或類似的,由服務器端API定義爲 ),請求 被視爲JSONP。有關更多詳細信息,請參閱 $.ajax()中關於jsonp數據類型的 討論。

0

這是通過同源策略,這意味着你只能使用Ajax具有相同來源獲取一個url故障碼(包括域名,端口,protocal)

+0

請問你能解釋一下我是新的還是不理解如何解決這個問題。 – 2011-04-18 07:26:00

+0

@ molvi您可以閱讀Google Maps的JavaScript API,以瞭解如何在JS中使用api:http://code.google.com/apis/maps/documentation/javascript/ – wong2 2011-04-18 07:32:57