问题标签 [preflight]

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 回答
3155 浏览

angularjs - 如何在 SiteMinder 受保护的环境中处理 CORS 预检请求?

我正在构建一个 AngularJS 应用程序,它将与运行在不同主机上的 RESTful 服务进行交互。由于请求是跨来源的,CORS正在参与其中。由于请求将 JSON 指定为预期的内容类型,因此CORS 预检请求由浏览器触发。直到目前为止。

根据 W3 规范,CORS 预检请求应排除用户凭据。RESTful Web 服务应用程序受 SiteMinder 保护,它被配置为基于 URL强制执行身份验证。Web 服务仅依靠 SiteMinder 进行身份验证和处理授权。这就是无法删除 SiteMinder 的原因。因此,CORS 预检请求返回HTTP 401 Authorization Required。它会阻止浏览器继续执行实际请求。

关于如何在 SiteMinder 受保护的环境中启用 CORS 预检请求的任何想法?提前非常感谢!

0 投票
2 回答
1202 浏览

angularjs - Satellizer 使 Angular 使用 OPTIONS 请求预飞行我所有的其余查询

如果所有服务器都响应 OPTIONS 请求,这不会有问题,但 Satellizer 甚至会导致 Angular 使用 Content-Type text/plain 预先发送 GET 请求。实际上,它破坏了我的其他 REST 查询的一半。

0 投票
7 回答
35984 浏览

go - Go gin 框架 CORS

我正在使用 Go gin 框架gin

我有状态代码:200 OK,但是在 OPTIONS 请求之后什么也没有发生。看起来我错过了什么,但我不明白我错在哪里。

有谁能够帮助我?

0 投票
15 回答
539906 浏览

http - 为什么会发送 OPTIONS 请求,我可以禁用它吗?

我正在构建一个 Web API。我发现每当我使用 Chrome 发布、获取到我的 API 时,总是在真正的请求之前发送一个 OPTIONS 请求,这很烦人。目前,我让服务器忽略任何 OPTIONS 请求。现在我的问题是发送 OPTIONS 请求以使服务器负载加倍有什么好处?有什么方法可以完全阻止浏览器发送 OPTIONS 请求?

0 投票
1 回答
952 浏览

extjs - 基本身份验证问题

为清楚起见编辑:

使用 python/Flask REST-API 为 ExtJS 应用程序提供安全端点(使用基本身份验证)。CORS 已启用。在我对 Safari 的所有测试中,所有人都表现出色。决定测试其他浏览器(IE、Chrome 和 Firefox),结果我不断收到 401 错误并且没有登录对话框。

我发现以下博客文章http://mortoray.com/2014/04/09/allowing-unlimited-access-with-cors/建议添加以下代码块以确保覆盖所有端点的所有标头:

我将此添加到我的 api 代码中,希望它可以工作,但似乎没有任何区别。

API 通过 Apache 使用 mod_wsgi 托管,所有身份验证都使用该WSGIPassAuthorization On指令传递给 wsgi 应用程序。

不用说,我有点困惑。如果检测到 401 错误,我不应该总是得到登录对话框吗?

0 投票
1 回答
2302 浏览

ajax - 使用 Spring MVC 4 处理跨域预检 AJAX OPTIONS 请求

这可能是一个简单的答案,但我似乎无法让它发挥作用。在跨域、预检 AJAX 请求中,客户端首先发出一个 OPTIONS 请求,只是获取一组标头,以确定远程服务器接受什么。

现在,对于我创建的每个 Spring 控制器 POST 接口,我还必须创建一个 OPTIONS 接口,如下所示:

我在某处读到,您可以只创建一个简单的方法,该方法没有映射到特定路径来处理所有 OPTIONS 请求,如下所示:

但是,当我添加该方法时,我提交的每个请求都表明它找不到到我请求的资源的映射。

有没有一种方法可以在一个方法中处理所有 OPTIONS 请求,而不必为我创建的每个接口创建一个?

0 投票
2 回答
1161 浏览

angularjs - “相同域”上的角度选项 http 预检?

我目前对 Angular 的(jquery)预检 OPTIONS 调用是如何“选择”或选择在请求之前执行感到困惑。

我有一个正常的 RESTful api 调用 (api.domain.co)

127.0.0.1 local.domain.co我在我的主机文件中创建了一个主机条目/etc/hosts

我创建了自签名证书:

我已将我的 mac 中的证书配置为受信任:

我已经配置了我的优胜美地端口转发规则:

我从浏览器的角度理解(Chrome):

我有一个从https://local.domain.co加载的角度应用程序,该应用程序带有一个调用https://api.domain.co/user的受信任证书,证书看起来一切都是绿色的,我仍然得到预检OPTIONS 调用我的 api.domain.co 服务器,这是一个支持 CORS 的节点 resitfy 服务器

一切正常……但是

我想摆脱 OPTIONS 预检任何指针?

0 投票
0 回答
500 浏览

javascript - Safari 在 302 重定向后将 Simple Cors Request 转换为 Preflight

我发现通过 Javascript、jQuery Ajax 在 safari 上出现以下问题:

  1. 我使用 GET 提出了一个简单的请求
  2. 服务器响应 302
  3. Safari 遵循重定向但使用 OPTIONS 而不是 GET 作为方法,因此它执行预检请求

我希望第 3 步也将使用 GET 调用一个简单的请求,这正是它在 Chrome 和 Firefox 中完成的方式。

问题是在第 3 步之后响应请求的服务器无法使用方法 OPTIONS 处理请求,因此以“方法不允许”状态失败。由于我对服务器端没有影响,我需要强制要么不自动遵循重定向而是手动执行,或者以某种方式告诉 safari 不要切换到 OPTIONS。

有没有办法做这些选择之一?

0 投票
2 回答
2605 浏览

request - 如何使用 CORS 的节点请求包避免预检 OPTIONS 请求?

我只是希望发布一些 json,但默认情况下请求会执行预检 OPTIONS 请求。

我想避免这种情况,因为用户经常有不可靠的连接,额外的请求会进一步降低可靠性并导致诸如“CORS 被拒绝”之类的神秘错误消息。

为了澄清我正在做一个实际的 CORS 并希望避免 preflight OPTIONS 请求。我也可以控制发球(尽管这无关紧要)。

0 投票
1 回答
2903 浏览

http - golang中http POST的预检问题

我正在使用 mux 包并拥有以下代码:

它在 IE 上运行良好,但 chrome preflight 正在发送一个 OPTIONS 方法,我收到了 404 响应。任何帮助将不胜感激。