我在jsp页面上有这样的东西
var json_text = JSON.stringify(rows, null, 2);
$.get("/myapp/CountQuery.action",
{output: output,
table: table,
stringRows: json_text
},
function(data) {
var text = JSON.stringify(data);
alert('Here is the data received ' + text);
});
我使用json2.js来满足我的JSON需求。所以,我传递的stringRows
是json数据。但是output
和table
取自我页面上textfield元素的值。考虑到它们所代表的内容,将stringRows
与output
和table
混合是没有意义的。也许如果需要,我可以创建一个包含output
和table
的第二个json对象。在函数中,我收到了一个Struts 2动作发送给我的结果类型为JSON的JSON数据,它给了我有效的JSON数据。
以下是发生的事情。如果我从jquery调用中删除output
和table
,我会看到oc4j中的日志消息,一切看起来都不错。如果我只删除stringRows
,我会在oc4j中看到日志消息,一切看起来都不错。如果我有output
,table
和stringRows
,警报消息会被激活,但我没有看到任何日志表明某些内容不太正确。 JSON数据出现在我上面函数的text
变量中,但我不知道实际发生了什么。
所以我的问题是:混合json和非json数据本质上是坏的,如果是这样,哪个级别被愚弄了?我在他们的jquery get调用中看到了其他用户'json'
,所以我想它可能与此有关。
修改
评论太长了,所以这是我的回复:
@kingjiv我在ie中不断发展,所以有时候我忘记检查日志。所以在chrome中运行,我得到的消息是GET http://localhost:8080/myapp/CountQuery.action?output=APPN%2CBSO%2CLI&table=mytable&stringRows=%5B%0A++%5B%0A++++%22%22%2C%0A++++%22%22%2C%0A++++%22ADD%22%2C%0A++++%22%3D%22%2C%0A++++%22A%22%2C%0A++++%22%22%2C%0A++++%22AND%22%2C%0A++++%22%22%0A++%5D%2C%0A++%5B%0A++++%22%22%2C%0A++++%22%22%2C%0A++++%22D%2FR%22%2C%0A++++%22%3D%22%2C%0A++++%22D%22%2C%0A++++%22%22%2C%0A++++%22AND%22%2C%0A++++%22%22%0A++%5D%2C%0A++%5B%0A++++%22%22%2C%0A++++%22%22%2C%0A++++%22CIVPER%22%2C%0A++++%22%3D%22%2C%0A++++%22N%22%2C%0A++++%22%22%2C%0A++++%22AND%22%2C%0A++++%22%22%0A++%5D%0A%5D 404 (Not Found)
答案 0 :(得分:2)
金吉夫的评论是让我的思绪发生变化的全部。以下是我将其更改为
的内容 var json_text = JSON.stringify(rows, null, 2);
$.ajax({
type: "POST",
url: "/myapp/CountQuery.action",
data: "output=" + output + "&table=" + table + "&stringRows=" + json_text,
success: function(msg) {
var text = JSON.stringify(msg);
alert(text);
}
});
现在,我的日志记录很高兴向我汇报我需要知道的事情。