IE で ajax リクエストが機能しない問題を修正するために、コードを変更しました。現在、どのブラウザでも機能していません。奇妙な部分は、ajax リクエストが適切な結果を取得することです。この結果のみが解析されません。これを修正する方法は?いくつかのヘッダーなどを変更する必要がありますか?
すべての関数は tbGeocoder オブジェクトのメソッドです。
$.ajax({
url: 'http://nominatim.openstreetmap.org/search',
type: 'GET',
dataType: 'jsonp',
jsonp: 'false',
jsonpCallback: 'json_callback' + tbGeocoder.requestIndex,
data: {
format: 'json',
q: input,
limit: 1,
json_calback: 'json_callback' + tbGeocoder.requestIndex
},
beforeSend: function(x) {
if (x && x.overrideMimeType) {
x.overrideMimeType("application/json;charset=UTF-8");
}
},
dataFilter: function (data, type) {
console.log(data);
console.log(type);
/*for (key in data) {
//console.log(key);
}*/
return data;
},
success: tbGeocoder.processRequestResult,
error: function(data, textStatus, jqXHR) {
console.log(textStatus);
}
});
tbGeocoder.requestIndex++;
},
preProcessRequestResult: function (data, type) {
console.log(data);
console.log(type);
for (key in data) {
//console.log(key);
}
return data;
},
processRequestResult: function (data) {
console.log('==>in loop for nominatim');
}
firebug では、input="Den Dolechh" のような入力に対するコンソール出力は次のとおりです。
code address location
Den Dolech
undefined
jsonp
parsererror
Object { readyState=4, status=200, statusText="success"}
ネットワークステータスでは、ヘッダーが次のようになっていることがわかります。
Replyheaders
Access-Control-Allow-Orig... *
Connection close
Content-Length 445
Content-Location search.php
Content-Type application/json; charset=UTF-8
Date Thu, 05 Jul 2012 10:31:11 GMT
Server Apache/2.2.14 (Ubuntu)
TCN choice
Vary negotiate
X-Powered-By PHP/5.3.2-1ubuntu4.17
Requestheaders
Accept */*
Accept-Encoding gzip, deflate
Accept-Language nl,en-us;q=0.7,en;q=0.3
Connection keep-alive
Host nominatim.openstreetmap.org
Referer http://localhost/locations/add
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0.1
返信は次のとおりです。
[{"place_id":"44757488","licence":"Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.","osm_type":"way","osm_id":"36859933","boundingbox":["51.4484252929688","51.449333190918","5.48478031158447","5.48527336120605"],"lat":"51.4489435225293","lon":"5.48514453068994","display_name":"Den Dolech, Eindhoven, Samenwerkingsverband Regio Eindhoven, Noord-Brabant, 5600 MB, Nederland","class":"highway","type":"residential"}]
これを修正するにはどうすればよいですか? データを取得しましたが、どうすれば取得できますか?