问题标签 [cors]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5658 浏览

iframe - 跨域资源共享标头可以授权 X-Domain IFRAME 访问吗?

当包含页面和内容页面不来自同一个域时,调整 IFRAME 的高度以匹配其内容页面的高度可能是一个真正的拖累。

跨域资源共享 (CORS) 标头是否允许内容页面授权跨域访问其资源,从而允许其包含页面读取其高度?(或者,或者,包含页面授权内容页面宣布其高度?)

还是 CORS 严格来说是 AJAX 的东西?

0 投票
1 回答
5555 浏览

jquery - Jquery Ajax 总是使用 CORS 抛出错误

只是为了澄清,因为我无法在标题中提供足够的信息......

我正在做一个跨站点请求并遵守 CORS,这一切都有效。浏览器发送一个选项请求,我的服务响应一些接受标头,然后浏览器接受 200 响应并发送帖子。如果您不需要它们的任何信息,请随意跳过标题输出:

初始选项请求:

选项响应:

发帖请求:

帖子回复:

一旦这一切都完成了,我的 jquery 错误回调将使用 statusText“错误”调用,并且 xhr 包含:

我有点困惑,因为响应似乎有效,而且 xhr 甚至不包含任何状态代码。我已经尝试在其中查看 jquery 完整回调和相同的详细信息。以前有人见过这样的事情吗?哦,我正在使用 Firefox,但也在 Chrome 中进行了测试,同样的问题 :(

0 投票
1 回答
1477 浏览

jquery - 当域具有端口号时,Firefox 不接受 CORS cookie

我有一个奇怪的问题,我已经让 CORS 在没有 cookie 的情况下工作,现在我正在添加 cookie 支持,因为我的 web 服务使用 cookie 作为其对某些路由的身份验证机制的一部分。

现在,最初当我设置 xhr.withCredentials = true 时,它​​会接收并接受 cookie,但后来我意识到 cookie 的域是“localhost”,随后对服务的调用不会发送 cookie。至于为什么它不会将 cookie 发回,这仍然是部分未知,但据推测这是因为实际服务驻留在“localhost:1893”而不是“localhost”上,就像域所说的那样。

所以...我更改了服务中的域以正确反映端口号,因此它是“localhost:1893”。但是,当现在发生 CORS 请求时,它会在响应中接收 cookie(您可以在 firebug 响应中看到它),但是 cookie 是灰色的,并且不会出现在 firebug 的实际 cookie 部分中。

任何人都可以对此有所了解吗?

  • 使用火狐 5
  • 使用 jquery 1.6.1
  • XHR 的 withCredentials 设置正确
  • 服务器返回正确的 CORS 标头
0 投票
3 回答
2192 浏览

xss - 同源策略的威胁模型是什么?

http://en.wikipedia.org/wiki/Same_origin_policy

同源策略可防止一个站点的脚本与另一个站点通信。Wiki 说这是一个“重要的安全概念”,但我不清楚它可以防止什么威胁。

我了解来自一个站点的 cookie 不应与另一个站点共享,但这可以(并且是)单独执行。

CORS 标准http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing提供了绕过同源策略的合法系统。据推测,它不允许同源策略旨在阻止的任何威胁。

看看 CORS,我就更不清楚谁受到了什么保护。CORS 由浏览器强制执行,因此它不会保护任何一个站点免受浏览器的影响。并且限制是由脚本想要与之交谈的站点决定的,因此它似乎并不能保护用户免受任何一个站点的影响。

那么,同源政策到底是为了什么?

0 投票
3 回答
7439 浏览

javascript - 跨域 Ajax 请求在 Opera 和 IE9 中不起作用?

我正在使用此页面 - http://ecmazing.com/cors.html - 向此资源发出跨域 Ajax 请求:http: //hacheck.tel.fer.hr/xml.pl

它适用于 Chrome、Safari 和 Firefox,但不适用于 IE9 和 Opera。

编码:

(预期结果是一个 XML 代码字符串。)

自己看看: http ://ecmazing.com/cors.html

在 IE9 和 Opera 中,error执行 XHR 对象的处理程序并传入此错误对象:

如您所见,这个错误对象并没有透露太多信息。

我怎样才能让它在 IE9 和 Opera 中工作?

0 投票
1 回答
957 浏览

javascript - 使用纯 javascript 为 Dropbox 上传文件并在 firefox 3.6 上支持 xhr

我正在尝试制作一个能够将某些文件上传到 Dropbox 的纯 JavaScript 应用程序。但是我遇到了障碍。显然在 Firefox 3.6 上能够发出跨源 POST 请求。Firefox 首先通过 option 方法发送访问控制标头。

https://developer.mozilla.org/en/HTTP_access_control

但是,Dropbox 似乎不支持对 url 的 OPTIONS 请求

http://www.dropbox.com/developers/web_docs

因此给出了 405 错误,但在我的 POST 请求中没有身份验证信息,我收到 403 错误。这是否意味着它不可能在 Firefox 3.6 上做我想做的事情

0 投票
4 回答
187239 浏览

html - 如何使用访问控制允许来源?它只是在html头标签之间吗?

我一直在阅读,Access-Control-Allow-Origin因为它在允许跨域请求方面似乎很有效,因为我可以访问外部站点。我的问题是我如何使用Access-Control-Allow-Origin来允许跨域请求。我试过这个(别笑)(顺便说一句,我想要一个数字,返回 1 或 0)

我接近了吗?谢谢你的帮助。如果有更简单的方法来执行简单的跨域请求,请告诉我。

0 投票
36 回答
755714 浏览

node.js - 为什么向 OPTIONS 路由添加 CORS 标头不允许浏览器访问我的 API?

我正在尝试在使用 Express.js Web 框架的 Node.js 应用程序中支持 CORS。我已经阅读了有关如何处理此问题的 Google 小组讨论,并阅读了一些有关 CORS 工作原理的文章。首先,我这样做了(代码是用 CoffeeScript 语法编写的):

它似乎不起作用。我的浏览器(Chrome)似乎没有发送初始 OPTIONS 请求。当我刚刚更新资源块时,我需要提交一个跨域 GET 请求到:

它可以工作(在 Chrome 中)。这也适用于 Safari。

我读过那...

在实现 CORS 的浏览器中,每个跨域 GET 或 POST 请求之前都有一个 OPTIONS 请求,用于检查 GET 或 POST 是否正常。

所以我的主要问题是,为什么在我的情况下似乎没有发生这种情况?为什么我的 app.options 块没有被调用?为什么我需要在我的主 app.get 块中设置标题?

0 投票
3 回答
14887 浏览

html - 浏览器画布 CORS 支持跨域加载图像操作

问题:哪些浏览器版本支持Canvas 中使用的跨域图像的 CORS(跨域资源共享)标头?

CORS 可以应用于跨域 XMLHttpRequest 和图像请求。这个问题是关于图像请求 的 我通常会去浏览器版本兼容性 http://caniuse.com/cors在这个问题上不清楚,谷歌搜索没有产生好的结果。

我确实发现了一个最近的 chrome 开发博客,暗示 CORS 支持在现代浏览器中广泛传播,但由于 WebGL 安全问题可能会中断。
http://blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html

有关 CORS 的更多详细信息:

我们正在考虑将 canvas 和 CORS 与跨域图像请求一起使用的可行性,如 W3C 工作草案http://www.w3.org/TR/cors/#use-cases中所述。html canvas 使用 CORS 允许以类似于 flash 使用 crossdomain.xml 的方式使用跨域资源。基本上,我们想要读取/编辑图像数据像素,并且我们不想使用同源代理服务器。

通常,如果图像是跨域加载并与 html canvas 一起使用,则使用 canvas.toDataURL() 之类的函数访问像素将引发安全错误。但是,如果交付图像的服务器添加这样的标头,则应该允许跨域使用。

我们最关心的浏览器:

我们计划使用 flash 解决 IE 缺乏画布支持的问题,因此对于有 CORS 问题的桌面浏览器,我们也可以这样做,但在移动 flash 上不是一个选项,并且使用代理来使请求同源不是我们用例中的一个选项。所以,我对 Android、Iphone、IPAD 浏览器对 CORS 的支持特别感兴趣。

0 投票
4 回答
22074 浏览

c# - WCF REST 服务中的 CORS 支持

我有一个托管在 Windows 服务中的 WCF REST 服务,我想在每个响应 中发送 Access-Control-Allow-Origin HTTP 标头(定义为CORS的一部分)。

我尝试的解决方案是在IDispatchMessageInspector实现中包含以下内容:

通常这会起作用,但不幸的是,我的服务也使用HTTP 基本授权,这意味着当没有 Authorization 标头的请求进入时,WCF 会自动发送一个 401 响应,要求提供凭据。不幸的是,WCF 在此初始交换期间没有调用我的 IDispatchMessageInspector,因此 Access-Control-Allow-Origin 标头不会添加到初始交换中。

当我尝试从浏览器调用服务时会出现问题。CORS 指定仅当源域与 Access-Control-Allow-Origin 响应标头中列出的域匹配时才允许跨域请求(* 匹配所有域)。不幸的是,当浏览器看到没有 Access-Control-Allow-Origin 标头的初始 401 响应时,它会阻止访问(根据相同的来源策略)。

有没有办法在 WCF 自动发送的初始 401 响应中添加标头?