当前位置: 首页 > 知识库问答 >
问题:

Webpack devserver代理无法绕过CORS问题

笪涛
2023-03-14

我有一个在端口5050上运行localhost的AWS.NetCore Lambda服务器。

当我尝试并提出请求时,我得到了cors错误:

CORS策略阻止了从来源“http://localhost:3000”获取“http://localhost:5050/”的访问:对飞行前请求的响应没有通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以便在禁用CORS的情况下获取资源。

https://medium.com/@drgenejones/proxying-an-external-api-with-webpack-serve-code-and-a-restful-data-from-deparate-endpoints-4da9b8daf430

但是它不工作,我没有看到任何不同的设置应用,有人可以帮助吗?

devServer: {
  port: 3000,
  disableHostCheck: true,
  compress: true,
  host: 'localhost',
  proxy: {
    '/': {
      target: 'http://localhost:5050',
      secure: false,
    },
  },
},

我调用服务器的JavaScript是这样的...我也尝试使用urlhttp://localhost:3000,但这只返回一个错误的请求错误。

  const result = await fetch('http://localhost:5050', {
    method: 'POST',
    headers: new Headers({ 'Access-Control-Allow-Origin': '*' }),
    body: JSON.stringify({
      method: 'upload',
      test: 'test',
    }),
  });

共有1个答案

乌翰学
2023-03-14

我想问题在于设置/,它可以只获取当前服务器,因此您可能需要区分web应用程序和服务器(很可能通过特定路径,如/api,但您可以选择将此路径传递给代理服务器,也可以不传递此路径)。

因此,您将更改如下:

  • 您的代理配置首先使用API通过代理:
proxy: {
  '/api': {
    target: 'http://localhost:5050',
    pathRewrite: {'^/api' : ''}, // In this case we don't pass `api` path
  }
}
    null
const result = await fetch('http://localhost:3000/api', {
  // ...
});

 类似资料:
  • 问题内容: 我正在使用以下网址: 正如我在“ myserver.com”的“ access.log”中看到的那样,使用了客户端的系统代理。但是我想完全禁止使用代理。 问题答案: 我目前了解的 完全 禁用代理的唯一方法是: 建立会议 设置于 使用该会话创建您的请求 import requests session = requests.Session() session.trust_env = Fal

  • 我正在使用tess4j作为来自JAVA的tesseract的包装器对图像运行一系列OCR。ocr的过程仍然需要大量的时间(有时甚至是5秒),我正在努力加快它。 我正在做我自己的图像预处理和二值化,这是没有必要的宇宙魔方做大津二值化。 我已经阅读了IOS的教程,该教程允许跳过图形处理部分,但是我无法使用tess4j找到任何内容。 这里的turial:https://github.com/gali8/

  • 我知道在根设备上运行包含敏感信息的应用程序根本不安全。因此,开发人员通常会在这种情况下进行根目录检测,如果发现设备已根目录,则无法安装该应用程序。一切都好。 开发人员在根检测中使用的主要技术是检查超级用户。apk文件、检查chainfire、busybox、执行su命令等。但攻击者可以通过多种方式绕过这些检查,如重命名超级用户。apk到超级用户0。apk。 所以,我要寻找的是一个独特的解决方案,在

  • 我有一个包含3个容器的项目:反向代理容器(jwilder-nginx-proxy image),前端容器(nginx容器服务于Vue js开发和捆绑的应用程序)和后端容器(node6容器服务于NodeJs ExpressJs应用程序)。后端和前端都在反向代理的后面。下面是它在我的本地主机中应该如何工作: 访问http://localhost:80/并为gui服务 gui应该通过http://loc

  • 我们有一个WSO2 ESB代理服务,可以通过它的httpsendpoint访问。我想配置这个服务,使它也可以通过HTTP访问。我检查了carbon management控制台中的服务配置,并确认https和httpendpoint都已启用: 此外,ESB_HOME}/repository/conf/axis2/中的axis2.xml文件似乎配置得很好。 编辑:下面是代理服务配置和netstat结果

  • 问题内容: 我面临着Java6 / 8的奇怪行为。我尝试通过需要基本用户身份验证的代理进行隧道传输。通过标准的Java身份验证器执行此操作。如果我尝试访问https网址作为第一个网址,则会引发异常: java.io.IOException:无法通过代理隧道。代理返回“需要HTTP / 1.1 407代理身份验证” 但是,如果我先访问http URL,然后再访问https URL,则https访问正