因此,根据jQuery Ajax文档,它在发送请求时以查询字符串的形式序列化数据,但设置processData:false应该允许我在正文中发送实际的JSON.不幸的是,我很难确定第一个,如果发生这种情况,那么第二个对象看起来是什么,它被发送到服务器.我所知道的是服务器没有解析我发送的内容.
使用http客户端发布对象文字时{someKey:'someData'},它可以工作.但是当使用jQuery时data: {someKey:'someData'},它会失败.不幸的是,当我在Safari中分析请求时,它说消息有效负载是[object Object]......很棒......而且在Firefox中帖子是空白的...
在Java端记录正文内容时,它实际上[object Object]是如何发送REAL JSON数据的?
有没有人有过在请求体中序列化JSON数据的Java服务的经验,请求是从jQuery发送的?
BTW这里是完整的$ .ajax请求:
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
Run Code Online (Sandbox Code Playgroud) 目前,表单中有复选框,并且在提交表单时,所选复选框的值存储在DB中.
<td><input type="Checkbox" name="valueList" value="Some value, with comma" >Some value, with comma</td>
<td><input type="Checkbox" name="valueList" value="Another Value, with comma" >Another value, with comma</td>
<td><input type="Checkbox" name="valueList" value="Yet another value" >Yet another value</td>
Run Code Online (Sandbox Code Playgroud)
但是,问题在于逗号,因为当前逻辑使用列表来存储这些值.因此Some value, with comma插入为Some value和with comma.使用以下内容创建当前列表:
<cfif isDefined("valueList")>
<cfset a=listlen(valueList)>
Run Code Online (Sandbox Code Playgroud)
然后代码继续循环遍历列表.这是valueList我在代码中找到的唯一引用.有没有办法将此转换为数组而不会使逗号成为问题?