问题标签 [http-status-code-502]

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

django - 在 Google App Engine 上为 Django 应用程序启用 CORS

我一直在尝试在 Google 应用程序引擎上启用 CORS 标头,但我在互联网上找到的所有方法都不适合我。

我的应用程序在 Python/Django 上,我希望我的前端应用程序(单独托管)能够在 Google App Engine 上对我的后端平台进行 API 调用。

2017 年 1 月的发行说明说

我们正在更改可扩展服务代理 (ESP) 的行为,以默认拒绝跨域资源共享 (CORS) 请求

可以在这里看到

他们提供的启用 CORS 的解决方案是将以下代码段添加到服务的 OpenAPI 配置中。

所以我按照这个例子在我的代码库中创建了两个文件

openapi.yml:

openapi-appengine.yml:

然后我运行了这个命令:

然后我编辑了我的 app.yml 文件,使其看起来像这样(添加的是 endpoints_api_service。在添加之前,应用程序正在部署,没有任何错误):

然后我刚刚部署了应用程序

现在,该应用程序已成功部署,但行为异常。所有应该返回 200 响应的请求仍然会引发 CORS 错误,但返回 400 状态的请求确实有效。

例如 - 注册 API 需要这些字段 - 电子邮件、密码 1、密码 2,其中密码 1 应与密码 2 相同。现在当我发送正确的参数时,我得到 HTTP 502 说

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin {origin-url} 不允许访问。响应具有 HTTP 状态代码 502

但是,当我发送与密码 2 不同的密码 1 时,我会收到 HTTP 400 响应,我确信该响应来自我的代码,因为如果密码 1 和密码 2 不匹配,则响应是用代码编写的字典。同样在这种情况下,标头的 Access-Control-Allow-Origin 为 * 但在前一种情况下,这是不正确的

我还检查了我的 nginx 错误日志,它说

*27462 在读取响应标头时上游过早关闭连接

我在这里做错了什么?这是在 GAE 中启用 CORS 的正确方法吗?

0 投票
1 回答
2240 浏览

javascript - localhost 和 put 方法的 CORS 问题

我正在尝试发出 CORS 请求以在我的客户端和放置在两个不同域中的服务器之间进行通信。

服务器标头已设置为以下 -

Access-Control-Allow-Headers:Content-Type, Authorization, Content-Length, X-Requested-With Access-Control-Allow-Methods:GET,PUT,POST,DELETE,OPTIONS Access-Control-Allow-Origin:*

如果我点击服务器 url ( http://server.com ) ,我可以看到响应标头通过

现在,当我使用 jquery 将数据和方法发送到服务器以处理并取回数据时,我得到以下信息

Failed to load http://server.com/event/live: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3016' is therefore not allowed access. The response had HTTP status code 502.

Jquery代码是——

非常感谢任何帮助。提前致谢。

0 投票
0 回答
1226 浏览

flask - 如何使用 CORS 和授权标头正确设置 Flask

我想在我的烧瓶应用程序中设置 CORS 并添加烧瓶cors 帮助到一定程度。虽然“CORS(app)”有助于所有不需要授权的路线,但我无法访问需要授权的路线。

有问题的一条路线如下所示。

我玩弄了CORS设置,到目前为止得到了这个:

但是当我尝试通过 fetch 从我的 React 应用程序中访问有问题的路由时,我收到了这个错误:

无法加载 MYROUTE:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:3000 ”。响应的 HTTP 状态代码为 502。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我还能做什么?

编辑

当我通过 CURL 发送一个 OPTIONS 请求时,我可以看到我的路由会以“access-control-allow”-headers 响应。所以我真的不知道发生了什么。这也是我的获取请求:

另外:当我在没有标题“授权”的情况下调用我的路由时,我会得到正确的响应,即“未提供身份验证”,而不是跨域问题。如果这条路线确实没有设置跨域允许,那么它应该在我的请求中声明没有授权,对吧?所以它与 Authorization 标头有关......

0 投票
1 回答
7754 浏览

aws-lambda - 无服务器 Lambda 和 API 网关的 CORS 问题

解决了

下面的问题只是由我的 Lambda 中构造的响应对象的 body 属性引起的。我忘记对数据进行字符串化,返回body: data而不是body: JSON.stringify(data). 响应的这个问题似乎触发了 API Gateway 的错误,导致请求失败并带有一些相当混乱的错误消息。

问题

我正在使用 React、Serverless 和 Stripe API 开发电子商务网站。我的前端 React 应用程序正在使用 Axios 向我的 Lambda 函数发出 GET 请求,该函数已通过 API Gateway 公开。Lambda 函数依次查询 Stripe API 并将 Stripe 响应数据返回到我的 React 应用程序。但是,当我的 React 应用程序尝试调用 Lambda 时,我遇到了 CORS 问题,它收到以下错误:

在 Insomnia 中查询 Lambda 端点会返回 502 响应{ "message": "internal server error" }。但是serverless invoke从终端执行 Lambda 函数的命令成功返回了 Stripe 数据。

我正在为我的 serverless.yml 文件中的函数启用 cors 并包含'Access-Control-Allow-Origin': '*'在我的 Lambda 代码响应中,如本无服务器博客文章中所建议的那样,我还尝试将以下标头的各种组合添加到我的 Lambda 响应和我的 Axios 请求中关于 Axios上的这个问题和Serverless上的这个问题的建议。我已多次删除并重新部署该服务,并且

Lambda 响应标头

反应/Axios 配置

目前我的代码如下:

反应应用

拉姆达

无服务器.yml

我已经在这几个小时了,任何见解都非常感谢。

编辑/附加 从 CLI 发出选项请求会返回以下内容:

0 投票
1 回答
107 浏览

javascript - CORS 请求 405 状态码

大家好,请帮助我解决我的 CORS 问题我从另一个域创建 API 请求,我的代码在下面出现错误,

上面的代码在我的模块上

我在我的主要选择。

});

当我访问这个休息时,我得到这个 405 错误方法不被接受,只有这个

我有另一个代码完全符合我的预期,唯一的区别是我使用 GET 方法。上面有错误的是POST。

这是结果

>

这是我在客户端的代码

0 投票
1 回答
102 浏览

angular - Angular 客户端对后端 API 的请求无法通过访问控制检查

我有一个 Angular 6 客户端,它向单独的 ASP.NET Core API 发送请求,在startup.cs文件中具有以下配置:

ConfigureServices方法中:

配置方法中:

在本地测试时,调用工作正常。在测试机器上部署并通过其 ip 和端口访问 angular 客户端时,请求给出:

(这是谷歌浏览器显示的错误信息)

我可能错过了什么?

0 投票
2 回答
760 浏览

angularjs - Angular $HTTP:CORS 问题

当我使用$http角度调用我的 API 点时,我不断收到 502 错误。
确切的错误是这样说的:

无法加载https://xxxxxxxxx.execute-api.eu-west-2.amazonaws.com/dev/api/fund:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:3000 ”。响应具有 HTTP 状态代码 502。

但是,我已经使用 Postman 检查了该标头是否在响应中,并且它是:

当我对同一个 URL 进行 OPTIONS 调用时,这里是使用 Postman 的响应的标头:

这是我一直在尝试调用 API 的代码,非常直截了当,我真的很困惑可能是什么错误:

0 投票
2 回答
1075 浏览

node.js - Angular CORS 问题 - 每 5 秒查询一次端点

我有一个角度应用程序,它每 5 秒查询一次节点/快递后端端点。但是,有时我会收到一个 cors 错误。

用例

  1. 用户创建交易。事务以“待处理”状态添加到数据库
  2. 前端会定期查询数据库,直到状态更新为“已完成”。所以它可以检索结果。

每 5 秒我做一个 http 获取请求

第一个请求很好,然后我在下一个请求时收到以下错误。

无法加载 https://"".com/api/v1/transactions/f3debad2-a830-4168-9a03-475389dae7e0:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:4200 ”。响应具有 HTTP 状态代码 502。

跨域读取阻止 (CORB) 阻止了具有 MIME 类型 text/html 的跨域响应 https://"".com/api/v1/transactions/f3debad2-a830-4168-9a03-475389dae7e0。有关详细信息,请参阅 https://www.chromestatus.com/feature/5629709824032768 。

同样,这种情况有时只会发生,有时我可以通过 200 个响应发出尽可能多的请求。

节点

我在后端设置了 CORS。

笔记

我不确定它是否是一个完整的服务器端问题。这是一个随机的边缘情况。我的所有其他 API 请求(包括 POST 请求)都可以正常工作。

事实上,在它开始间隔 5 秒检查结果是否准备好之前,它会发布到同一域上的端点,没有问题。

我已经完成了 10 个测试用例,每个测试将查询端点 3-4 次(通常在结果准备好/完成之前需要很长时间)。所有 10 个测试用例都可以,然后第 11 个可能有这个问题。

0 投票
1 回答
1003 浏览

amazon-web-services - 使用代理集成时,API 网关和 Lambda 出现 CORS 错误**仅**

我正在尝试根据 API Gateway 使用 Lambda 的发布请求将项目添加到 DynamoDB。

这是我的 Lambda 代码的样子:

这就是我从客户端调用函数的方式

我在我的 API 网关上启用了 30 多次 CORS,并且我还通过向响应添加标头进行了双重检查。但是无论我做什么,我都会不断收到 CORS 错误,并且由于某种原因,在我的回复中,我可以看到没有附加“Access-Control-Allow-Origin”标头。

我尝试不使用 Lambda 代理集成,然后它工作了,但是,我无法访问我传递的参数。

编辑:在花了几个小时之后,这就是我将问题归结为的原因。我的客户正在向 OPTIONS 发出成功的飞行前请求。OPTIONS 成功返回了正确的 CORS 标头,但由于某种原因,这些标头没有传递给我的 POST 请求!

EDIT2:(这不能解决问题)如果我将响应正文更改为字符串,则没有错误!有问题

0 投票
0 回答
136 浏览

node.js - Nodejs CORS 不适用于某些快速路线,

我正在使用“cors”模块在我的 EXPRESS APP 上启用 CORS,但它不适用于我的两条路线,我正在谷歌应用引擎上部署,在谷歌云存储上上传文件。

我每次都收到 502 状态码,其他路线都运行良好。遗漏了什么???