Javascript 未发送JS原型AJAX Post请求
我试图在我的应用程序中使用prototype将一些json数据发送到我的servlet并对其进行处理。以下是我的ajax请求:Javascript 未发送JS原型AJAX Post请求,javascript,ajax,servlets,prototypejs,Javascript,Ajax,Servlets,Prototypejs,我试图在我的应用程序中使用prototype将一些json数据发送到我的servlet并对其进行处理。以下是我的ajax请求: var dataToSend = getFormDataAsJSONString(); alert(dataToSend); new Ajax.Request('GetExpenses', { method: 'post', contentType: 'applica
var dataToSend = getFormDataAsJSONString();
alert(dataToSend);
new Ajax.Request('GetExpenses', {
method: 'post',
contentType: 'application/json',
postBody: 'data='+dataToSend,
asynchronous: true,
onSuccess: function(transport) {
parseReturnedExpenses(getPeriod(), transport.responseText);
},
onFailure: function(req) {
alert('unable to send ajax post.');
},
onComplete: function(req) {
alert('request completed');
}
});
我在doPost()servlet方法中有System.out.println()语句,只是为了查看该方法是否正在被调用,而从未被调用。我还在onfailure和oncomplete函数中输出了打印结果,但我没有看到这两个函数
我的dataToSend字符串看起来不错,所以我不确定我遗漏了什么。我在web.xml文件中定义了GetExpenses Servlet,所以我不确定发生了什么。有人看到我的代码有任何明显的错误吗
我的GET请求工作正常:
new Ajax.Request("GetExpenses",
{method: 'get',
parameters: {'period': period},
onSuccess: function(transport) {
var json = transport.responseText.evalJSON();
parseReturnedExpenses(period, json);
}});
尝试从POST调用中删除
contentType
,看看这是否会有所不同。是否尝试删除postBody并添加get方法中的参数?是否在同一域中的服务器上发布?