当API不允许Access-Control-Allow-Origin时该怎么办?
What to do when an API doesn't allow Access-Control-Allow-Origin
我被这些同源政策搞疯了。
当我尝试做一个请求到谷歌地图API我没有问题:
var jsonData = $.ajax({
url:"http://maps.googleapis.com/maps/api/geocode/json?address=",
dataType:"json",
async:true,
success: function(json){...}
}
我认为这是因为谷歌地图API允许访问-控制-允许-原点。但是当我尝试使用openls.geo .uni-heidelberg.de API时,我得到了跨原点错误:
var xmlData = $.ajax({
type: "GET",
url:"http://openls.geog.uni-heidelberg.de/route?"
//dataType:"jsonp xml",
dataType: "xml",
async:true,
crossDomain : true,
success: function(xml){...}
}
请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost'。
我不明白的一个想法是,如果openls API不允许跨源,为什么可以直接从我的浏览器做一个请求,只需输入url:
http://openls.geog.uni-heidelberg.de/route?start=9.25650649.240011,结束= 8.72083,49.7606,通过=和lang = de& distunit = KM& routepref = Bicycle&权重= Shortest& avoidAreas =, useTMC = false& noMotorways = false& noTollways = false& noUnpavedroads = false& noSteps = false& noFerries = false&指令= false
但是我不能使用jquery。我也尝试过jsonp解决方案,但它不能与xml。
知道发生了什么事吗?
我为两个本地运行的项目(Angular App和Node.JS Webservices)交互引起的CORS问题挣扎了太长时间
看看这个简单的解决方案:Chrome的插件AllowControlAllowOrigin。
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi只是切换单选按钮从红色到绿色,没有更多的阻塞请求,错误或警告!我希望它能与你的API一起工作,当然这不是一个永久的解决方案,但这是一个很好的方法,可以避免在那些恼人的反复出现的问题上浪费时间。
- 如何解决Access Control Allow Origin错误
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- 使用JavaScript插入Access数据库
- 我做了一个jquery幻灯片,但没有;我工作不好,我该怎么办
- JavaScript中的OOP太令人困惑了,ES6很棒,但没有得到很好的支持,该怎么办
- AWSELB Cookie access from Javascript
- XMLHttpRequest : 不被 access-control-allow-origin 所允许
- HTML将数据保存在Access中
- 使用 node.js 设置 Microsoft Access 数据库连接
- 来自 MS Access 的 JavaScript 陷阱为空
- 可以在Access Control Allow Origin中指定端口
- Access Control Allow Origin阻止我访问google api,尽管使用了dataType:
- JSONP跨原点错误'不存在Access Control Allow Origin标头'
- 角度:原点http://localhost在Access Control Allow Origin标头中找不到
- Angular$resource调用不被Access Control Allow使用Safari接受,而被Chrome接
- Instagram API access_token request and Access-Control-Allow-
- 在加载脚本之前需要调用函数时该怎么办
- 方法不允许 — 从 Angularjs 中的请求标头中删除 Access-Control-Request-Method
- 下载文件:ACCESS DENIED
- 当API不允许Access-Control-Allow-Origin时该怎么办?