问题标签 [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.
header - 如何添加 Access-Control-Allow-Origin 标头
我正在设计一个网站(例如 mywebsite.com),该网站从另一个网站(例如 anothersite.com)加载字体字体。我在 Firefox 中加载字体时遇到问题,我在此博客上阅读:
Firefox(从 v3.5 开始支持 @font-face)默认不允许跨域字体。这意味着必须从同一域(和子域)提供字体,除非您可以向字体添加“Access-Control-Allow-Origin”标头。
如何将 Access-Control-Allow-Origin 标头设置为字体?
javascript - 捕获 XMLHttpRequest 跨域错误
有什么方法可以捕获Access-Control-Allow-Origin
发出请求时引起的错误?我正在使用 jQuery,并且设置的处理程序.ajaxError()
永远不会被调用,因为请求从来没有开始。
有什么解决方法吗?
ajax - 错误:Access-Control-Allow-Headers 不允许 Content-Type
尝试发送 ajax 请求时,我在 Chrome 中收到此错误:
在 Firefox 中一切正常。
谁能帮我解决这个问题?
javascript - 使用跨域资源共享的跨域 POST 查询没有返回数据
我正在通过 POST 请求跨域发送数据,但响应不起作用,特别是 jQuery 的成功处理程序永远不会被调用。
使用的东西:Django、Apache、jQuery。
因此,我设置了一个与此类似的请求:
如您所知,CORS允许我OPTIONS
适当地回复查询,说“是的,您可以向我发送邮件”。我正在做的。Firebug 确认我得到了我的200
状态码并且返回类型实际上是application/json
. 但是,Firebug 也确认上面的成功处理程序没有被调用。
作为参考,我的回应OPTIONS
是:
相反,如果我设置了一个complete: function()...
处理程序,它就可以工作。
所以,问题是:发生了什么(或没有发生),为什么?我得到的数据很好,我只想能够返回响应。
更新:这解决了我在某些浏览器上的问题,但由于我对此行为没有完整的明确解释,所以我将其保持打开状态。
好的,所以我阅读了手册以及我对它的理解,所应用的算法大致是这样的:
- 用户代理可以实现预检调用。这是
OPTIONS
请求。这个想法是他们提出这个请求,这给他们一个关于所请求资源的答案,然后他们应该缓存这些资源。我没有传回 max-age字段,所以我怀疑在返回成功并且允许 X 请求时,用户代理的缓存中没有任何内容允许我这样做,所以默认规则(隔离请求) 被应用。 - 当您发出实际请求时,我相信用户代理应该检查飞行前缓存的权限。如果没有我的 max-age 字段,我相信它找不到这些权限。但是,使用相同的标题进行响应
POST
似乎允许 Firefox 和 Google Chrome 查看响应。歌剧不能。IE 目前还没有经过测试。
我目前不明白,并且从手册中(至少对我而言)不清楚 CORS 请求是否也应该在请求中使用这些标头以及OPTIONS
. 我将试验Max-Age
标题,看看允许或不允许什么。但是,我对这个问题仍然缺乏一定的权威理解,所以如果这里有人知道,我会全神贯注。
ajax - 尝试获取 json 的访问控制允许来源错误
我正在尝试利用 Bing API 撤回拼写建议,但不断收到以下错误:
XMLHttpRequest 无法加载http://api.search.live.net/json.aspx?Appid=myIdWasHere&query=explotion&sources=spell。Access-Control-Allow-Origin 不允许来源http://myWebServerNameWasHere
我读了几篇看起来相似的帖子,然后是关于 CORS 的帖子,但我还是有点模糊。我在下面的代码中有什么问题?
javascript - Does google-translate support CORS?
Is it possible to access google-translate (API v2) using
- Javascript
- POST
- Cross-Origin Resource Sharing (CORS)
It is quite easy to do it with GET, but the URL is limited to 2k characters (more like 2072).
The string to be translated is encoded with encodeURIComponent. That means the actual length of the string is less than 360 characters (greek). It seems that I can go from 360 ch to 5.000 ch using POST that is quite an improvement.
I know that I can call my server and have it call google-translate but it seems to be overkill if a CORS solution is feasible.
javascript - CORS POST 请求可以使用纯 JavaScript,但为什么不使用 jQuery?
我正在尝试提出一个跨域发布请求,我让它JavaScript
像这样简单地工作:
但我想使用jQuery
,但我无法让它工作。这就是我正在尝试的:
这会导致失败。如果有人知道为什么jQuery
不起作用,请让我们都知道。谢谢。
(我使用的是jQuery
1.5.1 和 Firefox 4.0,并且我的服务器正在响应正确的Access-Control-Allow-Origin
标头)
jquery - 如何使跨域资源共享 (CORS) 发布请求正常工作
我的本地局域网 (machineA) 上有一台机器,它有两个 Web 服务器。第一个是 XBMC 中的内置库(在端口 8080 上)并显示我们的库。第二个服务器是一个 CherryPy python 脚本(端口 8081),我用它来按需触发文件转换。文件转换由来自 XBMC 服务器提供的页面的 AJAX POST 请求触发。
- 转到显示库的http://machineA:8080
- 显示库
- 用户单击发出以下命令的“转换”链接 -
jQuery Ajax 请求
- 浏览器发出带有以下标头的 HTTP OPTIONS 请求;
请求标头 - 选项
- 服务器响应以下内容;
响应标头 - 选项(状态 = 200 OK)
- 谈话随即停止。理论上,浏览器应该发出 POST 请求,因为服务器使用正确的 (?) CORS 标头进行响应(Access-Control-Allow-Origin: *)
为了进行故障排除,我还从http://jquery.com发出了相同的 $.post 命令。这是我被难住的地方,来自 jquery.com,post 请求有效,OPTIONS 请求在 POST 之后发送。此交易的标题如下;
请求标头 - 选项
响应标头 - 选项(状态 = 200 OK)
请求标头 - POST
响应标头 - POST(状态 = 200 OK)
我无法弄清楚为什么相同的请求可以从一个站点工作,但不能从另一个站点工作。我希望有人能够指出我所缺少的。谢谢你的帮助!
javascript - 跨域资源共享 GET:'拒绝从响应中获取不安全的标头“etag”'
没有自定义标头的简单 GET 请求。响应按预期返回。可以访问正文中的数据,但不能访问标题。
当我尝试访问“etag”标头时,浏览器会引发异常:
拒绝获取不安全的标头“etag”
Chrome、Safari 和 Firefox 的行为都相同。我没有在IE上测试它。
我在这里想念什么?