没有'访问控制允许 - 来源' - CORS

时间:2016-03-12 08:10:55

标签: javascript json cors

我尝试通过robocopy.exe d:\thedir e:\thedir /XN /XO /S获取内容:

XMLHttpRequest

我收到了下一条消息:

  

XMLHttpRequest无法加载   http://mapy.geoportal.gov.pl/wss/service/SLN/guest/sln/woj.json。   对预检请求的响应未通过访问控制检查:否   请求中存在“Access-Control-Allow-Origin”标头   资源。因此,不允许原点'null'访问。

如何解决这个问题?我将var url = 'http://mapy.geoportal.gov.pl/wss/service/SLN/guest/sln/woj.json' if (XMLHttpRequest) { var request = new XMLHttpRequest(); if ('withCredentials' in request) { request.open('GET', url, true); request.withCredentials = 'true'; request.withCredentials = 'true'; request.setRequestHeader('Access-Control-Allow-Origin', '*'); request.send(); } } 标题设置为Access-Control-Allow-Origin

使用网址继续我的问题:jsonp continue

2 个答案:

答案 0 :(得分:1)

您在前端附加Access-Control-Allow-Origin,但在处理服务器端请求时应添加该标头。服务器应将Access-Control-Allow-OriginAccess-Control-Request-Method标头附加到允许执行前端请求的响应中。

我的猜测是你不能修改服务器处理请求的方式,服务器不支持JSON Padding (JSONP)所以你必须使用JSON Proxy来获取那个json数据...

请参阅How to add CORS support to server文章和How does Access-Control-Allow-Origin header work? SO问题以获取有关CORS的更多信息。

答案 1 :(得分:-2)

CORS对于跨站点请求伪造是安全的,当您从其他URL请求服务器获取api响应时,CORS会阻止它。

初始时的第一个方法是任何服务器的OPTION方法。并且当@Andriy回答你需要实现访问控制方法来解决你的问题的问题,具体到答案,你需要建议你正在使用的后端,我可以给你答案如何实现该方法。