请注意,这个问题与#19619088不同,因为我试图传递纯文本。
这是Java代码:
public @ResponseBody
String decertifyAll(
@RequestParam(value="reason",required=false) String reason,
@RequestParam("id") long id,
final HttpServletRequest request) {
...
这是我的ajax:
$.ajax({
url: '/dothing',
data: {
id: id,
reason: reason
},
processData: false,
contentType: false,
dataType: 'text',
type: 'POST',
}).done(saveDone)
.fail(saveFail)
;
在萤火虫中,这被捕获:
Source
{"id":"1492811","reason":"text"}
但是,我仍然得到错误:
Required long parameter 'id' is not present
奇怪的是,这实际上工作正常然后突然停止工作。我不明白为什么。
我的问题是:我需要更改哪些内容才能正确传递这些数据,为什么无法找到我传递的数据并将其转换为发布请求?
我不想将其全部包含在其他对象中,但如果需要,我会。
答案 0 :(得分:2)
通过删除我在AJAX调用中的一些可选参数来解决这个问题:
$.ajax({
url: '/dothing',
data: {
id: id,
reason: reason
},
type: 'POST',
}).done(saveDone)
.fail(saveFail)
;
我猜测beerbajay的评论是正确的,因为processData:false是原因。