2012-04-29 3 views
0

ジオコーディングAPIに対してJavaScriptコードでジオコードすることを試みています。私は定義されたURLを取得する var url = "http://http://maps.googleapis.com/maps/api/geocode/json?address=New York, Manhattan&sensor=false" 私はJSONオブジェクトを取得する必要があります。URL(ジオコーディングAPI)に基づいてJSONを初期化する最も単純な(または少なくとも1つの機能的)方法

http_request: XMLHttpRequest 
onabort: null 
onerror: null 
onload: null 
onloadend: null 
onloadstart: null 
onprogress: null 
onreadystatechange: function() { 
readyState: 1 
response: "" 
responseText: "" 
responseType: "" 
responseXML: null 
status: [Exception: DOMException] 
statusText: [Exception: DOMException] 
upload: XMLHttpRequestUpload 
withCredentials: false 
__proto__: XMLHttpRequest 

その何が本当に便利意味:私は、open()関数がトリガされた後、私は、コードを実行し、デバッガでこのような出力を得るこの

var my_JSON_object = {}; 
var http_request = new XMLHttpRequest(); 
http_request.open("GET", url, true); 
http_request.onreadystatechange = function() { 
    var done = 4, ok = 200; 
    if (http_request.readyState == done && http_request.status == ok) { 
     my_JSON_object = JSON.parse(http_request.responseText); 
    } 
}; 

のようにXmlHttpRequestのを使ってウィキペディアに応じた最初のアプローチを使用しました明らかに起こった。 私の第二のアプローチは、アイブ氏は、デバッガがJSONRequestが定義されていないことを私に言ったJSONRequest

var requestNumber = JSONRequest.get(
url, 
function (requestNumber, value, exception) { 
    if (value) { 
     document.write(value); 
    } else { 
     document.write(exception); 
    } 
} 

で呼び出すプレゼントしようとしたはjson.orgによるものでした! json.orgのネイティブJSオブジェクトのため、問題は何ですか? 通知するだけで、私は近くにあるスクリプトのgoogleから適切に得られたAPIキーを使用します。

私のソリューションが失敗した理由を説明し、このタスクに従う方法を教えてください。

+0

これはおそらくタイプミスですが、URLの先頭に「http://」が2回あります。 – Chris

答えて

0

ハックについてはcross domain XHRApache/HTTP proxiesのように読みましたが、結論としてはJavascript API V3 geocodingが唯一の現実的な選択肢です。このコメントは、(from here)権威はないがが、そのようなJSONリクエストはもう動作しないことを示しています

一つは、合理的にそれが最近までやったクロスドメイン アクセスを許可するためにGoogle MapsのAPIを期待します。今はもう許されません。 セキュリティ上の理由があると主張しているようですが、 は、サービスを受けるために自分のコードだけを使用することを強要することにもなります。だから クライアントからjavascriptを介してデータを取得する唯一の方法は、 Googleのjavascript apiを使用することです。とにかくほぼ同じ の柔軟性をapi URLを直接呼び出すように提供します。

This questionが最も有用な情報を持っていました。

関連する問題