HTTP 415

news/2024/12/23 3:58:57/

描述

在使用Easy-UI框架请求表单数据的UPDATE操作的时候,报了如下入错:
General
Request URL: http://localhost:8280/device/instrument/v1/register
Request Method: POST
Status Code: 415 
Remote Address: [::1]:8280
Referrer Policy: no-referrer-when-downgrade
---
Request Headers
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 103
Content-Type: application/x-www-form-urlencoded
Cookie: JSESSIONID=5576D4BE4E92115773583CDE439C6CDE
Host: localhost:8280
Origin: http://localhost:8280
Referer: http://localhost:8280/device/tag.html
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36

这里重点注意Content-Type: application/x-www-form-urlencoded,请求格式与后台的不匹配导致415错误。

原因查找

查看easyui的请求UPDATE方法得知,请求代码如下:

$("#fm").form("submit", {url: url,onSubmit: function () {return $(this).form("validate");},success: function (result) {var result = eval('(' + result + ')');if (result.success) {$.messager.alert("系统提示", "保存成功!");resetValue();$("#dlg").dialog("close");$("#dg").datagrid("reload");} else {$.messager.alert("系统提示", result.errorInfo);}}});

而在后台的接口接收方式如下:

    @PostMapping("/register")public Object register(@RequestBody @Valid Device device,BindingResult bindingResult) {if (bindingResult.hasErrors()) {return new Response(ErrorCode.RES_NOT_EXIST, bindingResult.getFieldError().getDefaultMessage());}return deviceService.register(device);}

此处,有@RequestBody,因此获取数据的方式为接收Json串。因此导致这个问题。

解决方法

不使用Easyui原生的form表单UPDATE方法,使用自实现的ajax请求

if($(this).form("validate")){$.ajax({type: "POST",contentType: "application/json",url: url,data: JSON.stringify($("#fm").serializeJSON()),success: function (result) {if(result.error_code == 1000) {$.messager.alert("系统提示", "保存成功!");resetValue();$("#dlg").dialog("close");$("#dg").datagrid("reload");} else {$.messager.alert("系统提示", result.errorInfo);}}})}

后台不做任何改变,由此解决问题。


http://www.ppmy.cn/news/687755.html

相关文章

【系统架构】第六章-数据库设计基础知识(数据库设计)

软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 第一章-绪论第二章-计算机系统基础知识(一)第二章-计算机系统基础知识(二)第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

python log函数

python log函数 语法: import math math.log(x[, base])注意:log()是不能直接访问的,需要导入 math 模块,通过静态对象调用该方法。 参数: x : 数值表达式base :可选,底数,默认为e 实例 i…

lg相乘公式,lg指数函数运算法则,指数函数运算公式8个

内容导航: Q1:对数函数的运算公式. 1、a^log(a)(b)=b 2、log(a)(a)=1 3、log(a)(MN)=log(a)(M)+log(a)(N); 4、log(a)(MN)=log(a)(M)-log(a)(N); 5、log(a)(M^n)=nlog(a)(M) 6、log(a)[M^(1/n)]=log(a)(M)/n 扩展资料: 一般地,对数函数以幂(真数)为自变量,指数为因变量,底…

matlab中lg怎么打开,在 matlab怎么表示lg10

matlab中log可以表示为ln,即log(exp(1))1; 根据换底公式,lg10表示为log(10)/log(10) 所以matlab中可以直接用lg10()。 若 10^yx 则y是x的常用对数:ylg x 函数ylg x(x>0) 值域R 零点 x 1 在(0,∞)中单调递增 导数 d/dx(lg x) 1/(x ln10) …

java lg_java的的lg函数

如果你使用的是nginx,可以修改你的配置文件如下实现 server { server_name **.**; #你的网站 listen 443; ssl on; ssl_certificate /usr/local/nginx/conf/server.crt; ssl_certificate_key /usr/local/nginx/conf/server_nopwd.key; location / { if ($http_user_agent ~ &qu…

lg相乘公式_lg函数(log的公式大全)

是对数函数,log以10为底的对数,如lg100=2 lg一般来说(大学之前)都是以10为底数的对数,称为常用对数.不过在大学里(电路方面)lg就可能是以2为底数的对数,不过总之,lg函数就是常用对数函数,在不同领域. 对数函数lg,是以10为底的对数(常用对数),如lg 10=1。lg即为log10。若…

对数函数 (logarithmic function)

对数函数 (logarithmic function) 1. the definition of a logarithm 如果 N a x ( a > 0 , a ≠ 1 ) N a^x \ (a > 0, a \neq 1) Nax (a>0,a​1),即 a a a 的 x x x 次方等于 N ( a > 0 , a ≠ 1 ) N \ (a > 0, a \neq 1) N (a>0,a​…

matlab中ln、lg函数怎么表示

我们首先需要知道在matlab中Ln(x)表示成了log(x),lg(x)表示成log10(x),如下图所示: 我们可以在matlab命令行窗口中输入“help log”,可以看到关于log函数的介绍,以e为底的对数函数,如下图所示: …