问题标签 [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 投票
9 回答
85653 浏览

ajax - 引入预检 CORS 请求的动机是什么?

跨域资源共享是一种允许网页向另一个域(来自Wikipedia)发出 XMLHttpRequests 的机制。

在过去的几天里,我一直在摆弄 CORS,我想我对一切是如何运作的有了很好的理解。

所以我的问题不是关于 CORS / preflight 如何工作,而是关于将 preflights 作为新请求类型提出的原因。我看不出为什么服务器 A 需要向服务器 B 发送预检 (PR) 只是为了确定是否会接受真正的请求 (RR) - B 肯定有可能接受/拒绝 RR 而无需任何先前的 PR。

经过一番搜索后,我在www.w3.org (7.1.5)找到了这条信息:

为了保护资源免受在本规范存在之前无法源自某些用户代理的跨域请求,发出预检请求以确保资源了解本规范。

我发现这是有史以来最难理解的句子。我的解释(最好称其为“最佳猜测”)是关于保护服务器 B 免受来自不了解规范的服务器 C 的请求。

有人可以解释一个场景/展示一个 PR + RR 比单独使用 RR 解决的问题吗?

0 投票
1 回答
9493 浏览

ajax - 发送带有自定义 HTTP 标头的跨域请求时禁用预检 OPTION 请求

我刚刚发现我的浏览器在尝试使用自定义 http 标头进行跨域 ajax 调用时发送了一个额外的“OPTION”请求。我认为它被称为“预检请求”。

是否可以禁用此功能并仅发送初始请求?

这是我的 javascript 测试代码:

感谢您的帮助!

0 投票
1 回答
614 浏览

ajax - 骨干同步发送 CORS 预检,但之后什么也不做

我尝试使用 model.save() 保存主干模型,我给出了 urlRoot,我正在等待一个 POST 调用。我在另一个等待请求的子域上有一个 REST 服务。

我通过 model.save() 获得了这些请求标头。

Sy 提到这是一个预检请求,所以我应该使用以下标头进行响应:

我试过了,但这不起作用,浏览器不会向服务器发送另一个请求 :S :S :S :S :S

如何解决?这是一个主干错误吗?

0 投票
2 回答
1188 浏览

wcf - 具有 CORS 和基本身份验证支持的 WCF 自托管数据服务

我正在构建一个 WCF 自托管数据服务(顺便说一下,OData),并且我正在使用基本身份验证对用户进行身份验证。这并不难,我只需要一些配置步骤,构建一个 UserNamePasswordValidator 和一个 IAuthorizationPolicy - 完成。

现在我需要支持 CORS(跨域资源共享)。我尝试了许多实现,一些有文档记录(例如this),另一些是我自己制作的。

问题是,如果我启用基本身份验证,因为 CORS 预检请求 (OPTIONS) 没有“授权”标头,并且我无法操纵请求(当然,否则会破坏浏览器的目的这样做),我无法拦截/响应服务器上的请求。我什至无法检查它走了多远!我尝试实现许多行为、绑定、管理器等,但我无法捕获该请求,甚至在“DataService<>.OnStartProcessingRequest()”上也无法​​捕获。

如果我在服务器端禁用基本身份验证,我能够捕获 CORS 预检请求并最终响应它(使用 IDispatchMessageInspector 和 BehaviorExtensionElement),但这样我必须自己实现基本身份验证......该死.

请帮我。我如何实现两者?如何在 Basic Auth 简单地响应 401 Unauthorized 之前拦截 CORS 预检请求?

提前致谢。

0 投票
1 回答
1166 浏览

javascript - ajax 预检失败,Firefox 中的 OPTIONS 响应为 200

我有以下代码:

我在调用它时看到以下警报:

  • URI
  • 就绪状态=1,状态=0
  • 就绪状态=2,状态=0
  • 就绪状态=4,状态=0
  • 预检确定

浏览器发送一个 OPTIONS 请求,并收到“200”响应。更确切地说:

永远不会发送 GET 请求,onreadystatechange 中不再有任何状态。

这是从 Firefox 21.0 Mozilla Firefox for Ubuntu Canonical - 1.0(这是帮助/关于 firefox 报告的内容)在本地文件系统中的 html 文件上完成的。

这里有什么问题?

0 投票
0 回答
403 浏览

asp.net-web-api - 不一致的 ASP.NET Web Api 飞行前选项

我从我的单页应用程序中收到不一致的预检 HTTP 选项请求。这有时只是随机发生,我改善这个问题的唯一方法是按 F5 并且事情会好一段时间,直到我有点“空闲”。

当它发生时,我的 Chrome 网络选项卡如下所示:

在此处输入图像描述

当我的

我的基础设施故障

  • AngularJS 应用程序
  • ASP.NET 网络接口
  • 视觉工作室 2012
  • IIS 7.5
  • Windows 7的

我已经阅读了几篇文章,我的 web.config 的 system.webServer 看起来像这样:

0 投票
1 回答
872 浏览

cors - 我应该期望 OPTIONS 预检所有 CORS 请求吗?

我在客户端配置了两种类型的 CORS 请求。一个实现 GET 方法,另一个实现 POST。

在使用第一个 GET 发出初始预检 OPTIONS 后,后续的 GET 和 POST(使用 jQuery Ajax 对象配置几乎相同)之前不会进行预检。

当我监控 Chrome 网络面板时,我没有看到 OPTIONS 预检在后续请求之前发出。

一旦浏览器验证了服务器接受了哪些方法和来源,并且一旦接受了第一个预检,浏览器是否不会发送任何后续预检,因为它和服务器之间已经建立了 CORS 通信?

0 投票
1 回答
526 浏览

cors - restify cors 飞行前未连接

我们无法在飞行前与 cors 合作:非常感谢任何帮助

========== 错误============================

======== 卷曲 ============================

========= 恢复代码 ===================

0 投票
1 回答
418 浏览

pdf - PDF 优化以获得更好的渲染效果

我正在寻找 PDF 优化技术/预处理以将打印就绪的 PDF 转换为媒体就绪(将 PDF 转换为网络 PDF)。

用于呈现 PDF 的目标设备是 iOS 和 Android

Adobe Acrobat Pro 等工具为减少图层、合并图层等任务提供设置。预期的输出 PDF 应只有三层:1) 文本 2) 图像 3) 特殊效果

我们可以通过使用 pre-flight 来做到这一点,从而选择图层并合并它们。任何有效地执行此操作的步骤,我都不想在页面级别手动进行此类优化。

我可以一次运行在多个页面上导入图层(比如多个 image.tiff)吗?

0 投票
4 回答
30246 浏览

.net - .NET Web API CORS PreFlight 请求

我在向其他域上的 Web API 发出 PUT 和 DELETE CORS 请求时遇到了一些麻烦。

我已经通过教程http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#create-webapi-project编写了 API 。

GET 和 POST 请求工作正常,但 DELETE 和 PUT 不能。我收到这条消息:

当我向使用 ASP.NET Web API 的 CORS 支持 PUT 和 DELETE建议的 WebConfig 添加代码时,我只收到第一个错误。

任何人都可以帮我解决这个问题吗?