我正在尝试使用XmlHttpRequest对here.com API进行批量地理编码调用,但没有任何结果
根据HERE.COM文档,我可以对进行批量地理编码调用
https://batch.geocoder.api.here.com/6.2/jobs?app_id={YOUR_APP_ID}&pp_code={YOUR_APP_CODE}&mailto=<your_email_address>&outdelim=|&outcols=displayLatitude,displayLongitude,locationLabel, houseNumber,street,district,city,postalCode,county,state,country&outputcombined=false
然后在POST正文
中recId|searchText|country
0001|Invalidenstraße 116 10115 Berlin|DEU
0002|Am Kronberger Hang 8 65824 Schwalbach|DEU
0003|425 W Randolph St Chicago IL 60606|USA
我正在尝试使用JavaScript使用XmlHttpRequest并使用以下代码获得一些响应:
geocode = function() {
var xhttp = new XMLHttpRequest();
var osmURL="https://batch.geocoder.api.here.com/6.2/jobs"
+"?app_id=0aApOideNwpiPyzejpFk"
+"&app_code=Hz7Rz_PodmUhdG8KCDSgk_g"
+"&mailto=joan.the.best@gmail.com"
+"&outdelim=|"
+"&outcols=recId,displayLatitude,displayLongitude"
+"&outputcombined=false"
+"&language=de-DE"
xhttp.onreadystatechange = function() {
alert(xhttp.responseText);
if (this.readyState == 4 && this.status == 200) {
alert(xhttp.responseText);
}
};
xhttp.onload = function() {
alert(xhttp.responseText);
alert(this.status);
if (this.readyState == 4 && this.status == 200) {
alert(xhttp.responseText);
}
};
var postToSend =
"recId|searchText|country" + "\r\n" +
"0001|Invalidenstraße 116 10115 Berlin|DEU" + "\r\n" +
"0002|Am Kronberger Hang 8 65824 Schwalbach|DEU" + "\r\n" +
"0003|425 W Randolph St Chicago IL 60606|USA";
xhttp.open("POST", osmURL, true);
xhttp.send(postToSend);
}
我希望输出类似于:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:SearchBatch xmlns:ns2="http://www.navteq.com/lbsp/Search-Batch/1">
<Response>
<MetaInfo>
<RequestId>qr9jVjuoFe1mULUvBlXr7UK4dM8BpAkO</RequestId>
</MetaInfo>
<Status>submitted</Status>
<TotalCount>0</TotalCount>
<ValidCount>0</ValidCount>
<InvalidCount>0</InvalidCount>
<ProcessedCount>0</ProcessedCount>
<PendingCount>0</PendingCount>
<SuccessCount>0</SuccessCount>
<ErrorCount>0</ErrorCount>
</Response>
</ns2:SearchBatch>
,但不返回任何结果,甚至没有状态。我已经完成了各个呼叫,没有问题,因此URL必须可以访问。
您尝试过这样的事情吗?
预先感谢, 琼。
编辑:进行更多调查,我收到“ XMLHttpRequest:网络错误0x80070005,访问被拒绝”错误,以及与CORS相关的信息。如何提供有效的凭据以便允许访问?谢谢。
答案 0 :(得分:0)
也许“ outdelim”参数的编码是罪魁祸首;换管道'|'到“%7C”。这也适用于“ indelim”。