2011-04-18 74 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