我正在制作ajax PUT请求并包含请求的所有必填字段。我仍然得到400错误。
这是我的表格数据
var settings = {
"async": true,
"crossDomain": true,
"url": url,
"type": "PUT",
processData: false,
contentType: false,
"credentials": 'include',
"headers": {
Authorization: "Token " + token
},
"data": data,
success:( response, textStatus, jQxhr )=> {
console.log("info updated")
}
}
$.ajax(settings).done((response) => {
console.log("info updated success")
});
这就是我提出请求的方式
server {
listen 80;
server_name mycomputer.mydomain.com;
location /myapp {
proxy_pass 127.0.0.1:8085;
}
location /myapp2 {
proxy_pass 127.0.0.1:8086;
}
.....
}
这是我得到的错误
如果我离开“演员”字段,我的后端完全可以。请不要认为这是一个可能的答案。我试过也包括“演员”,但仍然有同样的错误。
我做错了什么?我是以错误的方式制作形式数据吗?
更新
我发送的JSON是(这是从我打印formdata的控制台)
答案 0 :(得分:1)
看起来数据未在服务器端正确传递或未正确转换,因此验证失败。在请求标头中,我注意到它正在发送multipart/form-data
。
请更新consumes
的{{1}}以允许RequestMapping
,即multipart/form-data
答案 1 :(得分:0)
尝试将数据作为JSON发送:
var settings = {
"async": true,
"crossDomain": true,
"url": url,
"type": "PUT",
processData: false,
"credentials": 'include',
"headers": {
Authorization: "Token " + token
},
"data": data,
"contentType":"application/json; charset=utf-8",
success:( response, textStatus, jQxhr )=> {
console.log("info updated")
}
}
$.ajax(settings).done((response) => {
console.log("info updated success")
});