【发布时间】:2012-08-25 15:23:24
【问题描述】:
我的客户端上有以下代码
var value = {"userId":form.userId.value};
var xhrArgs = {
url : messageUrl,
handleAs : "text",
content: value,
load : displayMessages,
error : function(error) {
dojo.byId("displayArea").innerHTML = "Error aquiring messages";
}
};
dojo.xhrGet(xhrArgs);
}
在我的服务器端控制器代码
@RequestMapping(value = "/getMessages.htm", method = RequestMethod.GET)
public @ResponseBody String showMessageTable(@RequestParam("userId") String userId,ModelMap params)
{
我收到 400 错误提示
客户端发送的请求语法错误()
有人可以解释我做错了什么吗?我已经用 firebug 测试了 dojo 代码,并且该值似乎传递得很好。谢谢!
【问题讨论】:
-
您可能需要检查您的 Accept 标头,它应该是
application/json -
@BijuKunjummen 即使我在移动文本,我也必须这样做吗?不是 json 对象吗?
-
哦,好吧,没有意识到,你已经用@ResponseBody注释了响应,然后Spring会尝试根据accept header将响应转换为json或xml。只需删除@ResponseBody,它就会尝试根据您从
showMessageTable方法返回的内容来解析视图(比如jsp)。 -
@BijuKunjummen 感谢您的回复! ResponseBody 注释是我刚刚添加的,用于测试目的。即使我没有它,它也不会给我 JSP 页面。所以我在客户端的代码看起来不错?我仍然收到状态 400 错误。还要注意。当我输入网址时,dojo 在地址栏中发回的确切网址会将我带到一个新页面并显示数据。所以我知道 MVC 正在工作。
-
只是为了确认,当您发送请求时,使用 DOJO,它是普通的 POST 还是 GET,其中 userId 字段是普通的请求参数,而不是 json。
标签: javascript jakarta-ee spring-mvc dojo