我想将数据发送到Java Servlet进行处理。数据将具有可变长度,并且在键/值对中:
{ A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }
数据不需要以这种方式格式化,这就是我现在的方式。
var saveData = $.ajax({
type: "POST",
url: "someaction.do?action=saveData",
data: myDataVar.toString(),
dataType: "text",
success: function(resultData){
alert("Save Complete");
}
});
saveData.error(function() { alert("Something went wrong"); });
该$.ajax()
功能工作正常,因为我确实收到“保存完成”的警报。我的困境是在servlet上。如何检索数据?我试图像这样使用HashMap …
HashMap hm = new HashMap();
hm.putAll(request.getParameterMap());
…但是hm
结果为空,我猜这意味着.getParameterMap()
找不到键/值对。我要去哪里错了或者我想念什么?
您不需要字符串,而是确实需要键值对的JS映射。例如,更改:
data: myDataVar.toString(),
与:
var myKeyVals = { A1984 : 1, A9873 : 5, A1674 : 2, A8724 : 1, A3574 : 3, A1165 : 5 }
var saveData = $.ajax({
type: 'POST',
url: "someaction.do?action=saveData",
data: myKeyVals,
dataType: "text",
success: function(resultData) { alert("Save Complete") }
});
saveData.error(function() { alert("Something went wrong"); });
jQuery理解这样的键值对,但不理解大字符串。它只是将其作为字符串传递。
更新: 代码已修复。
但是打印的数组应该包含传递给$_POST数组的数据中的“requestData:true”,但是这个数组是空的。我做错了什么?谢谢!
问题内容: 我有一个按钮,它调用模式框淡入屏幕,说从按钮发布的值然后淡出,使用jquery可以正常工作,但我也想在单击按钮时将按钮发送的值发布到屏幕上php函数,可以运行并且模式框仍然淡入和淡出。 我只有这个让我的网站知道要使用什么js: 我还是个新手,所以对一个菜鸟问题感到抱歉,但是那会允许ajax运行,还是只针对jquery? 我正在尝试的当前脚本是:(根据回复进行了编辑,使其格式正确,但是现
问题内容: 我正在Ajax调用中发送一些数据。值之一是设置为FALSE的布尔值。在Ajax调用的PHP脚本中,始终将其评估为TRUE。有任何想法吗? 在上面的Ajax中调用的脚本vote.php中,我检查了布尔值: 但条件始终满足。 问题答案: 帖子只是文字,文字在php中的评估结果为true。一种快速的解决方法是发送零而不是false。您也可以在PHP中用引号引起来。 然后,您可以传递正确/错误
问题内容: 我正在使用jquery ajax将更新发布回我的服务器。我担心要确保已采取适当的措施,以便只有我的AJAX呼叫才能发布数据。 我的堆栈是针对MySQL后端的Apache上的PHP。 忠告不胜感激! 问题答案: 您页面中的AJAX调用可以发出的任何请求也可以由应用程序外部的人发出。如果操作正确,您将无法确定它们是来自Web应用还是通过手动/其他方式进行的AJAX调用。 当您说要确保只有A
问题内容: 好吧,我已经建立了我的json字符串,但是我不确定下一步该怎么做? 在我的php文件中,我试图将dataString写入文本文件,这样我可以看到它通过ok,但是文本文件中什么都没有!我在客户端或PHP方面做错了什么,我的php代码: 问题答案: 您为什么不尝试像这样构造数据 然后在您的AJAX通话中 现在,您的PHP脚本可以将数据作为多维数组处理
问题内容: 我正在尝试在C#上检索JSON对象,这是我的JavasSciprt帖子,但无法在代码隐藏中处理它,谢谢! 我试图检索数据,如: 问题答案: 这是Encosia.com提供的示例(我添加了一个form参数)。您不需要访问-您可以改用方法参数。 代码隐藏 Java脚本