post接口使用get方式请求返回413 问题

  1. 有一个留资接口,使用post方式请求。参数:province, city, area等几个参数。

  2. 我对接口的请求方式进行了判断,如果不是post方式,我会返回错误信息,提示“请求非法”

  3. 我使用get方式请求接口进行测试,
    (1)参数以querystring的方式传,提示“请求非法”(是我的预期)
    (2)参数以请求体(x-www-form-urlencoded)的方式传,就会出现413 Request Entity Too Large。我以前在上传文件的时候会遇到这种问题,但我这里没有传文件。我在网上搜索到的答案基本上也都是修改nginx的配置。我的nginx配置如下(我认为足够了):

    client_max_body_size 50m;
    client_body_buffer_size 10m;
  4. 忘记说了,我在本地环境测试,以上两种情况都能提示“请求非法”(符合我的预期)。但是代码提到测试服后就会出现上述413的情况。(本地环境是PHPstudy,PHP版本:7.1. 测试环境PHP版本 7.1 都是lnmp)

  5. 我的问题就是,测试服上如何处理413 的问题,达到我的预期?

  6. 贴上相关代码如下(公司框架用的是tp6)

    Route::miss(function () {
     if (!(new \think\Request())->isPost()) {
         return json(['code' => 40000, 'msg' => '请求非法']);
     }
     return json(['code' => 40000, 'msg' => '您的请求不存在']);
    });
讨论数量: 7

file

file 没啥问题

2年前 评论
bneglect (楼主) 2年前
keyboby (作者) 1年前

你得去看看nginx 的 access.log 日志,搞不好是 临时文件写入权限都没有。

2年前 评论
bneglect (楼主) 1年前

file

1年前 评论
bneglect (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!