2012-02-08 17 views
0

私は私のページに次のjQueryのスニペットがあります見ることができるようにGoogle Maps APIが405エラーを返すのはなぜですか?

$(".lookup").click(function() { 
      var addr =  document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationAddr1.value + ",+" + document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationCity.value + ",+" + document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationState.value; 
      $.ajax({ 
       url: "http://maps.googleapis.com/maps/api/geocode/json?address="+escape(addr)+"&sensor=false", 
       success: function (data) { 
        var mydata = JSON.parse(data); 
        document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationLat.value = mydata.results[0].geometry.location.lat; 
        document.aspnetForm.ctl00_ContentPlaceHolder1_txtEditLocationLong.value = mydata.results[0].geometry.location.lng; 
       } 
      }); 
     }); 

を、これはアドレスの現在のフォームの値、都市国家や郵便番号を取得して、GoogleのAPIに渡し、その後、JSONレスポンスを解析し、緯度と経度のフィールドを同じフォームに移入します。このコードはローカルマシンで正常に動作します。しかし、プロダクションサーバーに置くと、405エラーが返されてきました。グーグルで405回のエラーが発生した後、私のサーバーがPOSTを強制していると思われ、GoogleがGETを要求していたが、Firebugを使ってヘッダーを検査したところ、間違いなくGETとして送信された。

Googleが405を返品する原因は何ですか?私は上記の使用していデコードURLは次のとおりです。

http://maps.googleapis.com/maps/api/geocode/json?address=1630%20E.%20Lamar%20Blvd%2C+Arlington%2C+TX&sensor=false

これは、同様に、アドレスバーに正常に動作します。

ありがとうございました。

+0

重複していますか? http://stackoverflow.com/questions/1783288/jquery-on-google-json-fails-with-error-405 – Kath

答えて

2

AJAXを使用してジオコーディングAPIにアクセスすることはできません。 Google Maps API V3のGeocoderを使用してください。

これは、Googleジオコーダへの非同期アクセスを提供します。

+0

OK。私は簡単にそれを試すことができます。テストモードでローカルマシン上で動作するのはなぜですか?それはまだアヤックスですか?奇妙な... –

+0

それは奇妙に見える、あなたは正しい:-) –

関連する問題