将前端代码中的
method: 'put' 替换为
method: 'post',
myType: 'put'
替换 method: 'delete' 为
method: 'post',
myType: 'delete'并更改 /src/utils/request.js 拦截请求,添加header
-----------------------------------------------------------------------------------------------------------------------
// request拦截器
service.interceptors.request.use(config => {
.........
//为 method 原来为 put 和 delete 的请求,添加http头信息
if (config.myType === 'delete') {
config.headers['X-HTTP-Method-Override'] = 'DELETE'
}
if (config.myType === 'put') {
config.headers['X-HTTP-Method-Override'] = 'PUT'
}
服务器根据Header:X-HTTP-Method-Override,转换请求method
或在nginx层修改和转发,服务端不需要做任何处理即可,参考配置#在nginx的server中添加
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'DELETE') {
set $method DELETE;
}
if ($http_X_HTTP_Method_Override ~* 'PUT') {
set $method PUT;
}
proxy_method $method;
最后一种可能tomcat 8以上不支持PUT DELETE,rest风格的api更适合将打包方式改成 jar,直接运行,目前看来第三种最有效。pom.xml修改打包方式为jar 终端运行命令:
nohup java -jar your_project.jar > your_project.log 2>&1 &