【问题标题】:How to disable CORS for google chrome in android studio emulator?如何在 android studio 模拟器中禁用谷歌浏览器的 CORS?
【发布时间】:2020-10-28 19:46:09
【问题描述】:

我正在使用端口转发在 android studio 模拟器中运行我的 localhost web 应用程序。 但是从服务器我收到后端 API 的 CORS 错误。 我使用 CORS 禁用扩展程序或通过禁用安全标志打开谷歌浏览器解决了桌面上的问题。 如何在移动设备或 android studio 模拟器的 google chrome 中禁用 CORS?

【问题讨论】:

  • 什么是网络应用程序?您可以通过 web 应用程序全局启用/禁用 CORS 的功能/
  • 网络应用是指我正在使用的反应应用。
  • 问题中描述的目标不是禁用 CORS,而是禁用同源策略。
  • 请分享你的设置信息你的后端服务是什么,从前端发出的请求,你得到了什么错误?
  • @Alwaysalearner 你能从中找到适合你的解决方案吗?

标签: android-studio same-origin-policy


【解决方案1】:

CORS 通常是您在服务器端/API 端进行调整的东西。你正在开发一个 React 应用程序,而 React 只是前端,所以你使用其他东西作为你的后端。如果你使用 express,你可以 npm install cors 然后 require 它,服务器将接受请求or you can manually set the headers。您可以使用 SpringJavalinFlask 和许多其他服务器/服务器端框架来做同样的事情。

假设您更熟悉 React 或者您无法访问后端,另一种选择是在开发时使用代理或中间件,以消除这些错误并欺骗您的后端和前端认为他们不是在谈论跨域。 Here's a good article about a React proxy middleware that intercepts requests and changes the origin.

编辑:只是为了提供更多信息,您可以像现在一样使用浏览器扩展程序或在浏览器中设置安全标志,但这是一种绕过 CORS 保护的黑客方法,正如您所见,当您想要使用不同的浏览器来测试您的前端,或者您想在不同的设备(android 模拟器)上进行测试,您会再次遇到这个问题,因为这些标头是在服务器端设置的。

【讨论】:

  • 嗨,我将阅读并尝试telerik.com/blogs/dealing-with-cors-in-create-react-app,因为我目前无法访问服务器端代码。但是我们使用的是 nginx 网络服务器,我认为我们可以在 nginx 设置中进行更改,以在 localhost 的情况下允许跨源请求。但我不确定那种方法。如果以上文章有帮助,我会更新。
  • oskarhane.com/avoid-cors-with-nginx-proxy_pass 这是一篇解释过使用 Nginx proxy_pass 避免 CORS 的文章,但我不明白步骤。
  • @Alwaysalearner Nginx 的配置方式与 React 可以使用我链接的文章相同。换句话说,您可以使用 Nginx 代理后端和前端之间的流量。在您提供的链接中,用户正在使用 Nginx 代理客户端和服务器之间的连接,并修改请求和响应标头以删除有关来源的详细信息。对于该页面上的用户,他们在 Nginx 配置中定义了两个“服务器”,一个充当代理并修改标头,然后将下游转发到另一个为后端 API 提供服务的服务器。
猜你喜欢
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
  • 2015-11-01
  • 2018-09-05
  • 2012-11-30
相关资源
最近更新 更多