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

错误413上传图像时负载过大

龚永新
2023-03-14

我试图上传一个图像从本地使用bas64做图像检测。
和一切正常工作在localhost和邮递员。
但部署后,我得到了CROS错误。

我已经在服务器上安装了cors中间件。js

const express = require("express");    
const cors = require("cors");
const bodyParser = require("body-parser");

const app = express();

app.use(cors());

app.use(bodyParser.json({ limit: "10000kb", extended: true }));
app.use(bodyParser.urlencoded({ limit: "10000kb", extended: true }));

cors中间件在使用url获取图像时工作正常,
但是当我试图使用bas64从本地上传图像时,控制台显示:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

这是我尝试过的解决方案:

  1. cors-任何地方
App.js

    const proxyUrl = 'https://cors-anywhere.herokuapp.com/';
    
    fetch(proxyUrl + API_CALL.IMAGE_URL, {
          method: 'post',
          headers: {'Content-Type': 'application/json'},
          body: JSON.stringify({
            inputLink: inputLink,
            inputMethod: inputMethod
          }),
          credentials: 'include'
        })

然后显示413有效负载太大

由于在localhost和postman中测试时没有错误,我发现一些文章说这可能仍然是cors错误。

服务器js

    const corsOptions = {
        origin: 'https://front-end-url/',
        methods: 'GET, POST, PUT',
        credentials: true,
        allowedHeaders: 'Content-Type,Authorization',
        exposedHeaders: 'Content-Range,X-Content- Range'
    };
    app.options('/imageUrl', cors(corsOptions));

它显示错误:

CORS policy: Response to preflight request doesn't pass access control check: 
The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' 
when the request's credentials mode is 'include'

我很困惑。。。有人知道怎么修吗?非常感谢。

共有2个答案

裴姚石
2023-03-14

在表达中使用

app.use(bodyParser.json({ limit: '50mb' }))
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 }))

但是在Nginx中,您还必须编辑/etc/nginx/nginx.conf,并在超文本传输协议块中添加以下行:

client_max_body_size 50M;

然后使用sudo服务重新启动Nginx

费秦迟
2023-03-14

最后通过将express.json()放在body Parser之后修复错误。

这样地:

app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
app.use(express.json());

如果先运行express.json(),Express会将全局限制设置为1mb。

对于下一个需要更多详细信息的人:错误:请求实体太大
以及需要设置Nginx配置文件的人:在AWS Elastic Beanstalk上的Nginx conf中增加client_max_body_size

 类似资料:
  • 问题内容: 我无法通过ajax上传多个文件。这是我的代码。 HTML代码: Ajax代码:- 当我通过Ajax调用upload_business_photo_do()函数时,它无法获取图像$ _FILES [‘file’] [‘name’]的名称 问题答案: 尝试这样使用,它简单又容易 并在控制器中使用像这样 并使用此功能将文件数据转换为多个图像数据的数组 它的工作完美,只需尝试使用它。您无需使用

  • 我正在尝试将图像上传到回形针并将其保存到s3。但是,我在控制台中收到以下错误 StackOverflow上有一些关于如何解决此问题的回复,尽管大多数人指出原始解决方案是对Rack的更新。但是,我使用的是Ruby 1.9.3和Rails 3.1.3,并且相信我没有Rack(我没有将其安装为Gem,是吗??)。 我一直在尝试的文件名相当简单,所以我假设问题出在实际的文件中,但是我不确定如何调试错误来自

  • 我有一个多部分上传API,当我通过邮递员上传文件时,它可以完美地工作。然而,当我通过相同的API但使用Fetch API上传时,我得到了413错误。 我尝试了这里给出的解决方案,但没有成功。 我的JS代码如下- 文件- Rest控制器- 这是我的服务器端日志- 当API通过Postman正常工作时,甚至当使用带有非REST控制器的模板上传时,为什么会出现大小问题。

  • 以下是我的上传代码: 编辑:我将base64字符串复制到一个在线转换器中,看起来不错,它返回了正确的图像。看起来,数据没有问题。firebase的处理方式有问题。 编辑:我尝试显式地将类型设置为image/jpeg而不是image/jpg,如下所述:当Firestorage关闭时显示图像的正确方式,或者在Firestorage for iOS中加载预览时出错,但没有区别。

  • 注意:未定义索引:第33行C:\xampp\htdocs\page1.php中的图片 警告:pathinfo()要求参数2较长,字符串以C:\xampp\htdocs\page1给出。php第35行对不起,只有JPG,JPEG,PNG

  • 我试图在JavaFX中实现一个非常简单的Raspberry Pi接口。我用的是一台电脑。基于fxml的布局和样式我的项目与css。我的问题是,尽管该应用程序在我的主计算机(从eclipse运行)上运行得很好,但它在Raspberry上也不工作,当我尝试在主计算机上运行导出的jar时也不工作。 我就是这样把纽扣剥皮的。当然,resources/images文件夹位于我的构建路径中。按钮的颜色与我在c