gpt4 book ai didi

jquery - AJAX 请求格式错误?问题出在哪里?

转载 作者:行者123 更新时间:2023-12-01 06:02:33 31 4
gpt4 key购买 nike

这是我的 AJAX 调用:

var dataString = "{existingProject:'"+ $("#existingProject").val() + "',newProjName:'" + $("#newProjName").val()+"'}";
$.ajax({
type: "POST",
url: "manageProjects.html",
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.status + " " + msg.responseText);
$("#grid").trigger("reloadGrid");
},
error: function (errormessage) {
alert(errormessage.status + " " + errormessage.responseText);
}
});

..这是我希望处理请求的 Spring MVC Controller 中的方法签名:

@RequestMapping(value="/manageProjects",produces="application/json",method=RequestMethod.POST)
public StatusResponse manageProjects(
@RequestParam("existingProject") String existingProj,
@RequestParam("newProjName") String newProj,
HttpSession session){

我一整天都在修改这个 ajax 调用,但我只是没有看到这个问题。我尝试过将 load 与数据参数 post 一起使用,并且我尝试过不设置 contentType 和 dataType 并使用它。

错误消息中的responseText告诉我该调用在语法上不正确......但不知道为什么......

我错过了一些愚蠢的事情。感谢您的任何见解...

最佳答案

我也遇到了同样的问题。我在firefox中使用tamper data插件来检查jquery发送的数据。有效负载为:

POSTDATA=message=test+message

我在 JQuery 请求上应用了 JayC 给出的修改,并且它有效。详情:

JayC给出的修改:

var dataString = JSON.stringify({
existingProject: $("#existingProject").val(),
newProjName: $("#newProjName").val()
});

我的要求:

      function post(dest) {
var dataString = JSON.stringify({ message: 'test message'});
jQuery.ajax({
type: "POST",
url: ndest,
crossDomain: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: dataString,
success: function (data, status, jqXHR) {
},
error: function (response, textStatus, errorThrown) {
handleError(response, textStatus, errorThrown);
}
});
};

处理请求的 Spring mvc Controller 部分:

@RequestMapping(value="myapp/{id}", method={RequestMethod.POST, RequestMethod.PUT})
@ResponseStatus(HttpStatus.CREATED)
public void setNote(@PathVariable("id") String user, @RequestBody MyModel content) {

现在有效负载是:

POSTDATA={"message":"test message"}

一些提示:

  • 使用篡改数据或任何其他嗅探器检查请求的负载
  • 我发现您的方法参数中没有@RequestBody。也许你的 json 无法解析,因为你什么也没要求。尝试添加@RequestBody MyClass内容。 MyClass 应该有正确对应的 getter 和 setter 以及一个空的构造函数。

关于jquery - AJAX 请求格式错误?问题出在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9810564/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com