当前位置: 首页 > 知识库问答 >
问题:

AJAX POST上的JSON Stringify 400错误请求

贺功
2023-03-14

我收到 400 个错误的 AJAX 发布方法请求。我正在后端使用Spring数据Rest服务。以下是我在JS前端的代码

var url = "/udb/data/SecurityRoleGroup",
        groupData = {id:"",name:"",accesslevel:"",roles:[]};
        groupData.id = groupId.val();
        groupData.name = groupName.val();
        groupData.accesslevel = groupDescription.val();
        groupData.roles = multiselect_to.val();

        $.ajax(url, { type: 'POST',
            dataType: 'json',
            headers: {
                'X-CSRF-Token': _csrfGroup.val(),
                'Content-Type' : 'application/json'
            },
            data: JSON.stringify(groupData),
            contentType: 'application/json',
        })
        .done(function(results) {
            showMessage.html("Group details are saved successfully.");
            showMessage.removeClass().addClass("alert alert-success").show();
        })
        .fail( function(xhr, textStatus, errorThrown){
            showMessage.html("Error : Rolegroup AJAX request failed! Please try again.");
            showMessage.removeClass().addClass("alert alert-danger").show();
        });

尽管我正在序列化 JSON 数据。我仍然收到400错误请求错误。如果后端的某些代码中断或发送到服务器的请求出现问题,则会出现此错误吗?

JAVA实现

@RepositoryRestResource(collectionResourceRel = "SecurityRoleGroup", path = "SecurityRoleGroup")
public interface SecurityRoleGroupRepository extends PagingAndSortingRepository<SecurityRoleGroup, Long> {

}

共有2个答案

皇甫卓君
2023-03-14

1.为什么你需要发送数据转换字符串你可以直接发送数据2 .你不需要把内容类型设为application/json,因为你在数据类型中定义为JSON 3 .如果你在这里使用post方法,确保你在服务器端处理相同的内容

郭华美
2023-03-14

如果您的数据中有spl字符,您需要在发送到服务器之前对数据进行编码。试试这个

$.ajax(url, { type: 'POST',
                dataType: 'json',
                headers: {
                    'X-CSRF-Token': _csrfGroup.val(),
                    'Content-Type' : 'application/json'
                },
                data: encodeURI(JSON.stringify(groupData)),
                contentType: 'application/json',
            })
 类似资料:
  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?

  • 我在Vue后端使用Laravel 6 passport grant密码。 当我发送正确的凭据到oauth/令牌它的工作和返回令牌,但当我发送错误(电子邮件/密码)它返回400而不是401与此消息。 我检查了客户id和客户机密。 我使用新安装的Laravel passport进行测试,没有一行代码,Laravel 5.8返回401,没有任何问题,但Laravel 6返回400个错误请求。 你知道吗?

  • 问题内容: 我有一段这样的代码 当我输入的查询超过一个词,例如“狗”时,出现以下错误。 谁能指出我做错了什么?提前致谢。 问题答案: “狗”返回400错误的原因是因为您没有转义URL的字符串。 如果您这样做: 会的。 但是,我强烈建议您使用请求,而不要使用urllib / urllib2 / httplib。这要容易得多,它将为您处理所有这一切。 这是与python请求相同的代码:

  • 我正在尝试从Google API获取一个授权代码,如步骤1(设置授权参数)所述(HTTP/REST)。 正如我在那里读到的,谷歌授权服务器有以下强制性查询字符串参数:client_id、redirect_uri和范围,所以我的href看起来像这样: <代码>https://accounts.google.com/o/oauth2/v2/auth?client_id=123002756467-dmq