POST 状态代码: 405 Method Not Allowed

背景

最近使用 Ant design 重新部署了一套系统,唯一不同的是多了文件上传功能,文件上传功能是做了一些自定义操作。

405 是 Nginx 返回的错误,意思是 nginx 静态资源服务的访问不支持 POST 请求。

定位问题

1、upload 组件使用的时候,把 action 直接删除,然后按照文档使用
2、本地环境,上传图片没有问题
3、上线之后,上传图片报错 405

本地开发环境发现每次上传图片,会图片请求一次,并且自身网页请求一次。共产生两次请求。
原因是antd的upload组件,如果没有action的配置项,会默认以当前网页的url作为路径,并进行图片POST方法的请求。

解决问题

前端方式:可采用组件 customRequest 方法来阻止默认上传行为【使用方式可以自己查】

后端方式:对这次默认行为返回200即可

因为懒得修改前端实现方式了,直接修改 Nginx ,如:

server {
  listen 80;
  server_name web.test.com;

  #前端网站
  location / {
    root /usr/local/www; # 静态页面根目录
    index index.html;#默认首页
  }

  # 405时 直接返回 200
  error_page 405 =200 $request_uri;
}

参考:
https://juejin.cn/post/7090888060610543646
http://blog.mryxh.cn/1278.html
https://pro.ant.design/zh-CN/docs/deploy/

Author: thinkwei

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注