Questions tagged «cors»

当您在浏览器devtools控制台中看到有关CORS(跨域资源共享)的消息时,请使用此标记-例如,您的浏览器记录了有关Access-Control-Allow-Origin的错误,并且您想知道如何消除该错误。也要针对CORS协议的其他问题(在Fetch Living标准中定义为使用响应标头告知浏览器放宽同源策略并允许跨域XHR / Fetch / Ajax请求的方式)。

8
当我的JavaScript代码出现时,为什么Postman不会出现“在请求的资源上没有'Access-Control-Allow-Origin'标头”错误?
注释:这个问题是关于为什么Postman不受XMLHttpRequest一样的CORS限制。此问题不是关于如何解决“无'Access-Control-Allow-Origin'...”错误。 请停止发布: 阳光下每种语言/框架的CORS配置。而是找到您相关的语言/框架的问题。 允许绕过CORS的请求的第三方服务 用于关闭各种浏览器的CORS的命令行选项 我正在尝试通过连接到内置的RESTful API Flask使用JavaScript进行授权。但是,当我发出请求时,出现以下错误: XMLHttpRequest无法加载http:// myApiUrl / login。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问原始“空”。 我知道API或远程资源必须设置标头,但是当我通过Chrome扩展程序Postman发出请求时,为什么它可以工作? 这是请求代码: $.ajax({ type: "POST", dataType: 'text', url: api, username: 'user', password: 'pass', crossDomain : true, xhrFields: { withCredentials: true } }) .done(function( data ) { console.log("done"); }) .fail( function(xhr, textStatus, errorThrown) { alert(xhr.responseText); alert(textStatus); });

15
Access-Control-Allow-Origin标头如何工作?
显然,我完全误解了它的语义。我想到了这样的事情: 从客户端下载JavaScript代码MyCode.js http://siteA- 起源。 MyCode.js的响应标头包含Access-Control-Allow-Originhttp://siteB:,我认为这意味着MyCode.js被允许对站点B进行跨域引用。 客户端会触发MyCode.js的某些功能,这些功能继而向发出请求http://siteB,尽管是跨域请求,但也应该很好。 好吧,我错了。它根本不像这样工作。因此,我阅读了跨域资源共享,并尝试阅读w3c建议中的跨域资源共享 可以确定的一件事-我仍然不明白我应该如何使用此标头。 我对站点A和站点B都拥有完全控制权。如何使用此标头使从站点A下载的javascript代码能够访问站点B上的资源? 聚苯乙烯 我不想利用JSONP。

30
访问控制允许原始多个域?
有没有一种方法可以使用Access-Control-Allow-Origin标头允许多个跨域? 我知道*,但是它太开放了。我真的只想允许几个域名。 例如,如下所示: Access-Control-Allow-Origin: http://domain1.example, http://domain2.example 我已经尝试了上面的代码,但是它似乎在Firefox中不起作用。 是否可以指定多个域,还是我只能使用一个?

30
为什么不将CORS标头添加到OPTIONS路由允许浏览器访问我的API?
我试图在使用Express.js Web框架的Node.js应用程序中支持CORS。我读过了了有关如何处理此问题的Google小组讨论,并阅读了一些有关CORS工作原理的文章。首先,我做到了(代码是用CoffeeScript语法编写的): app.options "*", (req, res) -> res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Credentials', true # try: 'POST, GET, PUT, DELETE, OPTIONS' res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS' # try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept' res.header 'Access-Control-Allow-Headers', 'Content-Type' # ... 它似乎不起作用。看来我的浏览器(Chrome)没有发送初始的OPTIONS请求。当我刚刚更新资源块时,我需要向以下站点提交跨域GET请求: app.get "/somethingelse", (req, res) -> # ... res.header 'Access-Control-Allow-Origin', '*' res.header 'Access-Control-Allow-Credentials', true res.header …

17
XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用Origin null
我正在开发一个页面,该页面通过jQuery的AJAX支持从Flickr和Panoramio中提取图像。 Flickr方面运行良好,但是当我尝试$.get(url, callback)从Panoramio进行操作时,我在Chrome的控制台中看到错误: XMLHttpRequest无法加载http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150。Access-Control-Allow-Origin不允许使用Origin null。 如果我直接从浏览器查询该URL,它将正常工作。这是怎么回事,我可以解决这个问题吗?我是在错误地编写查询,还是Panoramio这样做妨碍了我的工作? Google并未在错误消息中显示任何有用的匹配项。 编辑 这是一些显示问题的示例代码: $().ready(function () { var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&callback=processImages&minx=-30&miny=0&maxx=0&maxy=150'; $.get(url, function (jsonp) { var processImages = function (data) { alert('ok'); }; eval(jsonp); }); }); 您可以在线运行示例。 编辑2 感谢达林在这方面的帮助。 上面的代码错误。 使用此代替: $().ready(function () { var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150&callback=?'; $.get(url, function (data) { // can use …

10
尝试从REST API获取数据时,请求的资源上没有“ Access-Control-Allow-Origin”标头
我正在尝试从HP Alm的REST API中获取一些数据。它与一个小的curl脚本一起使用时效果很好-我得到了数据。 现在使用JavaScript进行操作,获取和ES6(或多或少)似乎是一个更大的问题。我不断收到此错误消息: 提取API无法加载。对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http://127.0.0.1:3000 '。响应的HTTP状态代码为501。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。 我了解这是因为我试图从本地主机中获取数据,并且解决方案应使用CORS。现在我以为我确实这样做了,但是以某种方式它要么忽略了我在标题中写的内容,要么是其他问题? 那么,是否存在实施问题?我做错了吗?我无法检查服务器日志。我真的有点卡在这里。 function performSignIn() { let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Accept', 'application/json'); headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true'); headers.append('GET', 'POST', 'OPTIONS'); headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password)); fetch(sign_in, { //mode: 'no-cors', credentials: 'include', method: 'POST', headers: headers }) …

21
对预检请求的响应未通过访问控制检查
我在使用ngResource调用Amazon Web Services上的REST API时遇到此错误: XMLHttpRequest无法加载 http://server.apiurl.com:8000/s/login?login=facebook。对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源“ http:// localhost ”。 错误405 服务: socialMarkt.factory('loginService', ['$resource', function($resource){ var apiAddress = "http://server.apiurl.com:8000/s/login/"; return $resource(apiAddress, { login:"facebook", access_token: "@access_token" ,facebook_id: "@facebook_id" }, { getUser: {method:'POST'} }); }]); 控制器: [...] loginService.getUser(JSON.stringify(fbObj)), function(data){ console.log(data); }, function(result) { console.error('Error', result.status); } [...] 我正在使用Chrome,但我不知道该怎么做才能解决此问题。我什至将服务器配置为接受origin的标头localhost。

14
为什么要发送OPTIONS请求,我可以禁用它吗?
我正在构建一个Web API。我发现每当我使用Chrome进行POST,GET到我的API时,总是在真实请求之前发送一个OPTIONS请求,这很烦人。目前,我让服务器忽略任何OPTIONS请求。现在,我的问题是,发送一个OPTIONS请求以使服务器的负载增加一倍有什么好处?有什么方法可以完全阻止浏览器发送OPTIONS请求?
415 http  cors  options 

10
CORS-引入飞行前要求的动机是什么?
跨域资源共享是一种允许网页向另一个域(来自Wikipedia)发出XMLHttpRequests的机制。 在过去的几天里,我一直在摆弄CORS,我认为我对所有工作原理都非常了解。 因此,我的问题不是关于CORS /预检如何工作,而是关于将预检作为新的请求类型的原因。我看不到任何原因,为什么服务器A需要发送预检(PR)到服务器B只是为了确定是否接受实际请求(RR)-B肯定有可能在没有请求的情况下接受/拒绝RR任何以前的公关。 经过大量搜索后,我在www.w3.org(7.1.5)上找到了以下信息: 为了保护资源免遭在该规范存在之前可能源自某些用户代理的跨域请求,将进行预检请求以确保资源了解此规范。 我发现这是有史以来最难理解的句子。我的解释(最好将其称为“最佳猜测”)是关于保护服务器B免受来自服务器C的请求(该服务器不了解该规范)。 有人可以解释一种情况/显示PR + RR比单独使用RR更能解决问题吗?
366 ajax  html  http  cors  preflight 

3
完整性和跨域属性是什么?
Bootstrapcdn最近更改了它们的链接。现在看起来像这样: <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous"> 什么做integrity和crossorigin属性是什么意思?它们如何影响样式表的加载?


11
Access-Control-Allow-Origin通配符子域,端口和协议
我正在尝试为所有子域,端口和协议启用CORS。 例如,我希望能够运行从http://sub.mywebsite.com:8080/到https://www.mywebsite.com/的XHR请求* 通常,我想启用来自匹配(并限于)的来源的请求: //*.mywebsite.com:*/*
312 cors 


7
CORS:当凭据标志为true时,不能在Access-Control-Allow-Origin中使用通配符
我有一个涉及的设置 前端服务器(Node.js,域:localhost:3000)<--->后端(Django,Ajax,域:localhost:8000) 浏览器<-webapp <-Node.js(为应用提供服务) 浏览器(webapp)-> Ajax-> Django(服务ajax POST请求) 现在,我的问题是CORS设置,Web应用程序使用它来对后端服务器进行Ajax调用。在Chrome中,我不断 当凭据标志为true时,不能在Access-Control-Allow-Origin中使用通配符。 在Firefox上也不起作用。 我的Node.js设置是: var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', 'http://localhost:8000/'); res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); next(); }; 而在Django我使用这个中间件 与此相伴 Webapp发出这样的请求: $.ajax({ type: "POST", url: 'http://localhost:8000/blah', data: {}, xhrFields: { withCredentials: true }, crossDomain: true, dataType: …

14
AngularJS对跨域资源执行OPTIONS HTTP请求
我正在尝试将AngularJS设置为与跨域资源进行通信,在该域中,提供我的模板文件的资产宿主位于不同的域上,因此angular执行的XHR请求必须是跨域的。我已将适当的CORS标头添加到服务器上,以进行HTTP请求以使其正常工作,但它似乎不起作用。问题是,当我在浏览器(chrome)中检查HTTP请求时,发送到资产文件的请求是OPTIONS请求(应该是GET请求)。 我不确定这是否是AngularJS中的错误,还是我需要配置某些东西。据我了解,XHR包装器无法发出OPTIONS HTTP请求,因此浏览器似乎在尝试确定是否“允许”在执行GET请求之前先下载资产。如果是这种情况,那么是否还需要为资产宿主设置CORS标头(Access-Control-Allow-Origin:http : //asset.host ..)?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.