【发布时间】:2018-08-20 07:06:06
【问题描述】:
我在 AJAX 请求中发送 2 个大查询字符串,它们基本上是 jpeg 的 Base64 编码。当相机不是高分辨率相机时,AJAX 请求不会中止。
一开始我以为是Nginx的问题,因为request entity too large报错我解决了,然后我修改了我的Plug as
plug Plug.Parsers,
parsers: [
:urlencoded,
{:multipart, length: 20_000_000},
:json
],
pass: ["*/*"],
query_string_length: 1_000_000,
json_decoder: Poison
在定义query_string_length 之后,现在我没有收到类似上面的任何错误,但 ajax 请求仍然中止。
Base64 编码字符串大小为546,591 bytes 或最大值。
我也尝试将 AJAX 请求超时增加到一个非常大的时间跨度,但它仍然失败。而且我现在不知道问题出在哪里。
我们如何在Plug 中接收长字符串?
StackOverflow 上一些关于人们使用 AJAX 和 PHP 的问题的一些答案,建议更改 post_max_size,我们如何在 Elixir Plug 中做到这一点?
【问题讨论】:
-
您是否将其发布为“多部分”类型?
-
不是吗?为什么会是多部分的?它只是一个字符串
-
如果你把它作为字符串发布,你应该改变
Plug.Parsers的长度。 -
PS,我在插件项目中没有找到
query_string_length选项。 -
我们正在发送带有 JSON 数据的 AJAX 请求。