【问题标题】:INVALID JSON FORMAT JQUERY无效的 JSON 格式 JQUERY
【发布时间】:2014-10-03 16:09:30
【问题描述】:

大家好。当我尝试为我的 JAX-WS 服务(我使用 google jsonwebservice 库)制作 ajax 时,我遇到了一个问题。 所以在我的页面上我有这个代码:

function submit(){
         var JSONObject= '{sayHello:{name:"alexei"}}';
         console.log(JSONObject);
            $.ajax({
                type: 'POST',
                url:  '/jaxwsExample-1.0.0-SNAPSHOT/json/hello',
                contentType: 'application/json',
                data: JSON.stringify(JSONObject),
                dataType: 'application/json',
                async: true,
                success: function(data) {
                    console.log("DATA " + data);
                }
            });
     }

还有console.log(JSONObject);回到我身边:

{sayHello:{name:"alexei"}} 

但是当我在我的 TomCat 服务器中时,我收到了这个错误:

原因:com.jaxws.json.codec.JSONFault:无效的 JSON 输入:"{sayHello:{name:\"alexei\"}}"

但我也从http://code.google.com/p/jsonwebservice/wiki/GettingStarted得到了工作示例

在该示例中,使用了进行 ajax 调用的prototype.js 框架:

 function submit(){
            new Ajax.Request('/jaxwsExample-1.0.0-SNAPSHOT/json/hello', {
                method: 'post',
                contentType: 'application/json',
                postBody: '{"sayHello":{"name":"'+$('name').value+'"}}',
                onSuccess: function(transport) {
                    $('response').update(transport.responseText).setStyle({ background: '#FFFFAA' });
                    $('notice').update(transport.responseText.evalJSON().message).setStyle({ background: '#dfd' });
                }
            });
        }

但我想用 jquery 代替prototype.js,你能帮我看看我的 jquery ajax 调用或 JSON 对象有什么问题吗?

【问题讨论】:

  • 将 JSON 对象中的键括在引号中:{"sayHello":{"name":"alexei"}}
  • 我仍然遇到同样的错误

标签: jquery ajax json jax-ws prototypejs


【解决方案1】:

你的“对象”实际上是一个字符串。

var JSONObject= '{sayHello:{name:"alexei"}}';

因此,当您稍后调用 JSON.stringify 时,引号会被转义。要么从一个实际的对象开始,

var JSONObject = {sayHello:{name:"alexei"}};

...或者不要尝试对字符串进行字符串化。

【讨论】:

  • thx 伙计,你是对的,但现在在 ajax 成功函数不执行...成功:函数(数据){ console.log(“数据”+数据); }
  • 已解决,我从 .ajax() 中删除 -> dataType: 'application/json' 属性
  • dataType 通常是自动的,因此不需要。此外,async 始终为 true,因此您也无需指定。
猜你喜欢
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
相关资源
最近更新 更多