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

jquery - 交叉呼叫与 Post 一起工作,但在飞行前失败

我必须从我的网站向第三方域/服务器进行网络服务调用。当我使用 jQuery Ajax by Post 方法和 content-type:text/plain 进行此调用时,它工作正常。

但是,当我将其更改为 content-type: text/xml 时,它正在抛出:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

即使它设置在第三方服务器上以允许访问我们的网站。我们在使用 content-type:text/plain 进行调用时得到了这个标题。

我们还在第三方服务器上添加了以下内容。

请让我知道飞行前请求没有得到“Access-Control-Allow-Origin”响应的原因可能是什么?

0 投票
1 回答
1378 浏览

heroku - 我的 Restify 服务器中没有“Access-Control-Allow-Origin”错误

我在我的 Heroku 服务器中使用 Restify。我收到此错误:

我的 Restify 配置是:

我的配置中缺少什么?

0 投票
1 回答
6711 浏览

c# - 如何在 C# 中调用跨域 API

我需要使用 C# 调用不同服务器的 API。我正在使用以下方法

但它总是给

403 禁止

我已经问过这个 API 的开发者,他建议我也需要发送预检请求

0 投票
2 回答
1154 浏览

javascript - Pingfederate opentoken 模块 CORS 请求返回 302 而不是 200

我们正在使用 Ping Federate 保护两个 Web 服务器(IIS 和都使用 IIS 集成工具包或 Ping 的 opentoken 模块进行保护)。一台服务器托管 WEB API 应用程序,另一台服务器托管网页。Web API 应用程序启用了 CORS。

该网页使用 json 数据向 API 服务器发出 Ajax 发布请求。这会导致浏览器启动预检选项请求。在 API 服务器上,Ping 模块拦截这个不包含凭据的请求(规范说预检选项请求不应该包含凭据)并在 Web API 代码可以处理它之前返回 302 重定向,而它应该返回 200 .

我目前唯一的猜测是制作一个处理选项请求的自定义模块并将其安装在 opentoken 模块之前。还有其他可能/更好的解决方案吗?

0 投票
3 回答
9021 浏览

iis - IIS 中托管的 WebAPI 中的 CORS 问题

我正在尝试实现一个应用程序,该应用程序使用Taiseer Joudeh在这个非常棒的示例中演示的相同的基于令牌的身份验证机制。

在我的应用程序中,我一直遇到 Cors 问题。在某些配置中,我会在 POST 的预检 (OPTIONS) 请求中收到 500 错误以获取令牌,或者我可以获取令牌,但随后在对实际 API 调用的 GET 请求的预检请求中收到 404 错误不记名令牌。

一个不同之处在于,Taiseer 的代码被设置为托管在 IISExpress(或 Azure)中,而我的代码托管在本地 IIS 上(目前在 Windows 7 上运行)。

凭直觉,我尝试在本地 IIS 下托管他的 API,但发现了完全相同的问题。(令牌的预检请求出现 500 错误,看起来实际的 API 可以正常工作)

从我一直在阅读的内容来看,这似乎是 IIS 中的模块和处理程序与 WebApi 中的 Cors 实现之间存在一些冲突,但是 Taiseer 的实现在托管在 Azure 中时有效,所以这可能是 IIS 版本的差异(我m 当前在 Windows 7 下运行)。

我怎样才能找出导致问题的原因?

0 投票
1 回答
78 浏览

javascript - 预检时间的 CORS 请求是否耗时?

我使用 AJAX 请求通过 POST 将数据发送到另一个域。由于我的内容类型不是标准的(它是 JSON 格式),因此需要预检请求。(带请求方法:OPTIONS)

如维基百科的跨域 XHR 调用表中所述

我想知道这是否很耗时,因为浏览器必须两次访问服务器?也许这取决于每个浏览器的行为?

我是否可以通过使用内容类型“纯文本”来避免预检请求来获得一些时间?

0 投票
1 回答
8976 浏览

javascript - Google reCAPTCHA、405 错误和 CORS 问题

我正在使用 AngularJS 并尝试使用 Google 的 reCAPTCHA,我正在使用“显式呈现 reCAPTCHA 小部件”方法在我的网页上显示 reCAPTCHA,

HTML 代码 -

到目前为止,我能够实现用户是人类还是机器人所需的功能,
根据我上面的代码,我的代码中有一个名为“verifyCallback”的回调函数
存储由 Google 创建的响应,在一个名为“auth”的全局变量中。

现在,reCAPCHA 的最后一部分是调用 Google API,
使用“ https://www.google.com/recaptcha/api/siteverify ”作为 URL 并使用POST方法,并将密钥和创建的响应
传递给它由谷歌,我在下面的代码中完成了。

我的控制器 -

所以,我实际面临的问题是我无法点击谷歌的 URL,
以下是我发送的请求和错误的截图。

提出的要求——
在此处输入图像描述

错误响应 - 在此处输入图像描述

据我了解,它与 CORS 和 Preflight request 有关
那么我做错了什么?我该如何解决这个问题?

0 投票
2 回答
2607 浏览

php - PHP-AJAX CORS 由于 Access-Control-Allow-Origin 而失败

我正在尝试使用以下代码进行 AJAX 调用(CORS):

我正在运行上面的代码:

编写的PHP代码http://localhost/MySpace如下:

根据我的理解,这应该有效。但是我收到此错误:

我该怎么做才能完成这项工作?还是我做错了什么?

根据调试请求的建议,我尝试发出 curl 请求:

作为回应,我可以看到它Access-Control-Allow-Origin被标记为*

根据评论,我将以下代码添加到我的.htaccess

@编辑:

这是我的响应标头:

这是我的请求标头:

0 投票
2 回答
8176 浏览

javascript - 使用 Django 和 Angular 的 CORS 预检请求

我试图向 REST api 发出请求。这是一个 CORS 请求。我的前端:Angular 1.5 (localhost:3000) 我的后端:Django (*****.ddns.net)

所以我正在使用一项服务(由不想共享代码的人制作:(),即在实际请求(预检)之前执行 OPTIONS 请求。准确地说,调用是通过 resolve 选项进行的UI-路由器状态定义. Django 有 CORS 允许 *.

这是我在谷歌浏览器中遇到的错误:

如果我在控制器中执行经典的 $http 请求,它就可以工作。

这是我的 django 收到的请求:

这是我与邮递员一起做的回应(当我做一个选项请求时,它正在与邮递员一起工作)

我认为这是 Django 方面的一个问题,我不知道。如果您有任何想法...(我需要了解很多有关 CORS 的知识...)

0 投票
1 回答
114 浏览

angularjs - AngularJS OPTIONS 对 Web API 的请求丢失

我正在尝试从 AngularJS 向不同域的 WebAPI 发出发布请求。

我相信 Web API 已正确设置以处理 CORS 请求。如果我使用 Chrome Advanced REST 客户端发出 CORS OPTIONS 请求,则会返回正确的标头和 200 响应代码。

当我在上面进行 POST 调用时,会发出一个预检 OPTIONS 请求。这总是以 504 代码超时。我的 Application_BeginRequest 中的日志记录永远不会被命中(从 Chrome 插件调用时)。

从 AngularJS 和 Chrome 插件调用有什么区别?两者都在同一台机器上运行,AngularJS 在本地主机上的应用程序中运行。两个调用都设置了相同的标头。