Jquery得到...混合json和非json数据?

时间:2011-08-04 17:12:26

标签: jquery json struts2

我在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数据。但是outputtable取自我页面上textfield元素的值。考虑到它们所代表的内容,将stringRowsoutputtable混合是没有意义的。也许如果需要,我可以创建一个包含outputtable的第二个json对象。在函数中,我收到了一个Struts 2动作发送给我的结果类型为JSON的JSON数据,它给了我有效的JSON数据。

以下是发生的事情。如果我从jquery调用中删除outputtable,我会看到oc4j中的日志消息,一切看起来都不错。如果我只删除stringRows,我会在oc4j中看到日志消息,一切看起来都不错。如果我有outputtablestringRows,警报消息会被激活,但我没有看到任何日志表明某些内容不太正确。 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)

1 个答案:

答案 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);
        }
   });

现在,我的日志记录很高兴向我汇报我需要知道的事情。