Vue前端POST传值,后端报错405

在VUE中写了POST传值,传值格式(data)如左图所示。后端添加了@Before(POST.class)拦截器获取数据时直接报错405.


~}94R2(A~LF2U}K5VBZ}CIK.pngBSNMSKHB)_OH_NB$C_PJZ5W.png

POST.class拦截器如下:

lALPDgQ9rMu0ffXNATnNAnU_629_313.png

如果将data转换成form-data,后端通过getPara()取值为NULL,通过如下方式获取,则会将浏览器的信息都得到,jsonStr通过FastJson解析报错。请各位大佬帮忙看看,非常感谢!

String jsonStr =  HttpKit.readData(this.getRequest())
Map<String, Object> ls = FastJson.getJson().parse(jsonStr, Map.class);

1573179744(1).png

后端获取的jsonStr如下:

------WebKitFormBoundaryKF24vQQitPH61aPW

Content-Disposition: form-data; name="userName"

 张三

------WebKitFormBoundaryKF24vQQitPH61aPW

Content-Disposition: form-data; name="country"

 中国

------WebKitFormBoundaryKF24vQQitPH61aPW

Content-Disposition: form-data; name="province"

 四川

------WebKitFormBoundaryKF24vQQitPH61aPW

Content-Disposition: form-data; name="city"

 成都

------WebKitFormBoundaryKF24vQQitPH61aPW

Content-Disposition: form-data; name="detailAddress"

 四川省成都市武侯区紫兰会大厦

------WebKitFormBoundaryKF24vQQitPH61aPW--


评论区

JFinal

2019-11-08 12:18

返回 405 异常,证明拦截器中走了 if 的 else 分支,那么证明你客户端发送的并不是 POST 请求,调整一下客户端代码即可

JFinal

2019-11-08 12:18

此外, HttpKit.readData(this.getRequest()) 这行代码建议改成:
getRawDatra();

xspycsj

2019-11-08 13:42

@JFinal 但是通过客户端将data转成form-data时就能传获取,只是获得的数据是multiple,不是json。

xspycsj

2019-11-08 14:09

@JFinal 另外我用的是3.4版本的,请问哪里有新的版本下载呢

热门反馈

扫码入社