我试图使用ajax将json对象发送到servlet。该对象将被更改并发送回客户端。这是我用来将json对象从客户端发送到服务器的代码。 函数sendJson(jsonObj)
{
var parsed = JSON.parse(jsonObj);
$.ajax({
type: 'get',
url: 'GameLogic',
dataType: 'JSON',
data: {
loadProds: 1,
parsed: JSON.stringify(parsed)
},
success: function(data) {
},
error: function(data) {
alert('fail');
}
});
}
我只掌握javascript的基本知识。据我所知,这段代码只是将一个json对象发送给servlet。从servlet接收响应时,我该如何获取它?我搜索了这个,发现类似上面的函数来接收响应。我不明白这个success: function(data)
部分的作用。
有人可以解释一下发送json对象并从servlet接收响应的方法。
当我将一个json对象发送到servlet时,除了将对象作为响应发送回去之外,有什么方法我可以知道它是否被servlet接收。
答案 0 :(得分:1)
简单地说,答案已经在您的代码中了。 jquery的ajax方法必须回调方法才能获得成功和错误。 两者都已经有了。在你的例子中,但什么都不做!!
这里你的代码带有指向回调的注释。
{
var parsed = JSON.parse(jsonObj);
$.ajax({
type: 'get',
url: 'GameLogic',
dataType: 'JSON',
data: {
loadProds: 1,
parsed: JSON.stringify(parsed)
},
success: function(data) {
// PROCESS your RESPONSE here!!! It is in "data"!!!!
},
error: function(data) {
// This is called when the request failed, what happend is in the "data"!!!
alert('fail');
}
});
}
默认地将Impl。成功回调中的内容,并使用您的浏览器开发工具对其进行调试,以查看"数据"内部的内容。
当您更改问题时,更多地了解如何处理通信以及如何知道您的请求是否已收到。这是我的正常做法。
首先,我为每个请求和响应定义一个envenlope,它始终是相同的。它看起来像这样:
{
status: OK | ERROR,
message: "possible error message etc."
data: JSON Object representing the payload.
}
这样做之后我就可以了。在服务器和客户端之间发送和接收消息的通用逻辑,每一方都知道如何处理信封。为了确保收到消息,可以进行处理等。
然后你有这个:
希望有所帮助
答案 1 :(得分:0)
success:function()
部分就像这样
请求成功时要调用的函数。函数传递三个参数:
从服务器返回的数据,根据 dataType 参数或 dataFilter 回调函数进行格式化(如果已指定)
描述状态的字符串
- 醇>
jqXHR(jQuery-XHR)对象
这意味着 - 如果您的ajax请求成功,服务器将返回一些响应,即数据。这个"数据"可以在函数中使用。
$.ajax({
...
success: function(data) {
// process the "data" variable
console.log("SERVER RESPONSE");
console.log(data);
}
});