嗨,大家好。我遇到问题,当我尝试为我的JAX-WS服务制作ajax时(我使用google jsonwebservice库)。 所以在我的页面上我有这个代码:
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
得到了实例在该示例中使用了原型调用的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对象错误吗?
答案 0 :(得分:0)
您的“对象”实际上是一个字符串。
var JSONObject= '{sayHello:{name:"alexei"}}';
因此,当您稍后致电JSON.stringify
时,引号会被转义。要么以实际对象开始,
var JSONObject = {sayHello:{name:"alexei"}};
...或者不要尝试对字符串进行字符串化。