问题描述
最近,我偶然发现了一个API,使用HERE-API通过地址获取纬度和经度。我能够发送成功生成LAT&Long的请求,也能够获取批处理的状态。但是当我尝试下载zip数据时,却出现了CORS问题。
-----这样,我发送POST请求-----
var raw = "recId|searchText|country\n0001|Invalidenstraße 116 10115 Berlin|DEU\n0002|Am Kronberger Hang 8 65824 Schwalbach|DEU\n0003|425 W Randolph St Chicago IL 60606|USA\n0004|One Main Street Cambridge MA 02142|USA\n0005|200 S Mathilda Ave Sunnyvale CA 94086|USA";
var requestOptions = {
method: 'POST',body: raw,redirect: 'follow'
};
fetch("https://batch.geocoder.ls.hereapi.com/6.2/jobs?gen=8&action=run&mailto=susheel.kumar.msl%40gmail.com&header=true&indelim=%7C&outdelim=%7C&outcols=displayLatitude%2CdisplayLongitude%2ClocationLabel%2ChouseNumber%2Cstreet%2Cdistrict%2Ccity%2CpostalCode%2Ccounty%2Cstate%2Ccountry&outputCombined=false&apiKey={API_KEY}",requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error',error));
-----这样我就可以得到状态-----
var requestOptions = {
method: 'GET',redirect: 'follow'
};
fetch("https://batch.geocoder.ls.hereapi.com/6.2/jobs/NqzzgiazJIbMTrQVYvFBp9J1sQ6Q7vOw?action=errors&apiKey={API_KEY}",error));
-----在这里我遇到问题了-----
var myHeaders = new Headers();
myHeaders.append('Content-Type','application/octet-stream');
var requestOptions = {
method: 'GET',headers: myHeaders,redirect: 'follow'
};
fetch("https://batch.geocoder.ls.hereapi.com/6.2/jobs/NqzzgiazJIbMTrQVYvFBp9J1sQ6Q7vOw/result?apiKey={API_KEY}",error));
-----这是我得到的错误-----
Access to fetch at 'https://batch.geocoder.ls.hereapi.com/6.2/jobs/NqzzgiazJIbMTrQVYvFBp9J1sQ6Q7vOw/result?apiKey={API_KEY}' from origin 'https://abc.test' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
即使我在白名单部分中添加了https://abc.test网域。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)