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

Jquery Ajax帖子中出现400个错误请求

姬国安
2023-03-14

我试图使用Jquery发送一个Ajax POST请求,但我有400个错误请求。

这是我的代码:

$.ajax({
  type: 'POST',
  url: "http://localhost:8080/project/server/rest/subjects",
  data: {
    "subject:title":"Test Name",
    "subject:description":"Creating test subject to check POST method API",
    "sub:tags": ["facebook:work", "facebook:likes"],
    "sampleSize" : 10,
    "values": ["science", "machine-learning"]
  },
  error: function(e) {
    console.log(e);
  }
});

它说:无法根据请求构建资源。我错过了什么?

共有3个答案

邓毅
2023-03-14

以防其他人碰到这件事。我有一个网站,它在桌面浏览器上运行得很好,但我在Android设备上遇到了400个错误。

原来是防伪令牌。

$.ajax({
        url: "/Cart/AddProduct/",
        data: {
            __RequestVerificationToken: $("[name='__RequestVerificationToken']").val(),
            productId: $(this).data("productcode")
        },

问题是。网络控制器设置不正确。

我需要向控制器添加属性:

    [AllowAnonymous]
    [IgnoreAntiforgeryToken]
    [DisableCors]
    [HttpPost]
    public async Task<JsonResult> AddProduct(int productId)
    {

代码需要审查,但现在至少我知道是什么导致了它。400错误一点帮助都没有。

柳向明
2023-03-14

是的。您需要对JSON数据或400错误请求错误进行字符串化,因为它无法识别数据。

400 Bad Request

请求错误。您的浏览器发送了此服务器无法理解的请求。

此外,还需要添加内容类型和数据类型。如果没有,您将遇到错误,说明介质类型不受支持。

415不支持的媒体类型

试试这个。

var newData =   {
                  "subject:title":"Test Name",
                  "subject:description":"Creating test subject to check POST method API",
                  "sub:tags": ["facebook:work", "facebook:likes"],
                  "sampleSize" : 10,
                  "values": ["science", "machine-learning"]
                  };

var dataJson = JSON.stringify(newData);

$.ajax({
  type: 'POST',
  url: "http://localhost:8080/project/server/rest/subjects",
  data: dataJson,
  error: function(e) {
    console.log(e);
  },
  dataType: "json",
  contentType: "application/json"
});

通过这种方式,您可以轻松地修改所需的数据。它不会让您感到困惑,因为它是在ajax块之外定义的。

潘哲
2023-03-14

最后,我犯了一个错误,原因是我需要对发送的JSON数据进行字符串化。我必须在XHR对象中设置内容类型和数据类型。正确的版本如下:

$.ajax({
  type: 'POST',
  url: "http://localhost:8080/project/server/rest/subjects",
  data: JSON.stringify({
    "subject:title":"Test Name",
    "subject:description":"Creating test subject to check POST method API",
    "sub:tags": ["facebook:work", "facebook:likes"],
    "sampleSize" : 10,
    "values": ["science", "machine-learning"]
  }),
  error: function(e) {
    console.log(e);
  },
  dataType: "json",
  contentType: "application/json"
});

也许这会帮助别人。

 类似资料:
  • 我在Eclipse Photon上用Java8编写了一个简单的webService,使用RestTemplate发布(使用postForObject)一个对象(称为patentListWrapper),该对象包装了一个对象列表(称为PatentDetails)。我从Java客户机(称为MainWsClient)发布,然后在服务器端的patentDetails中设置一个值,并在客户机中读取paten

  • 当试图将我的JSON映射到Spring MVC控制器中的Java对象时,我在Ajax请求上收到了400个错误请求。我已经检查了主题中的大部分相关问题,但仍然无法使其工作 Ajax调用和JSON: 我的控制器: 我的Java对象: 我使用Spring 4.2.5和Jackson: 我遇到的错误: HTTP错误400访问/ux/词汇表/createVocationary时出现问题。原因:糟糕的请求 此

  • 我在InteliJ/Java/RestAssured中收到一个400错误的POST请求,但在Postman中没有,所以谁能告诉我哪里出错了,请先告诉Postman 我的身体参数是 现在,当我发布这篇文章时,我得到了200条回复和一个不错的新访问令牌。当我在Java/RestAssured中尝试同样的方法时,我得到一个400错误的请求错误,这就是我发布的内容。 身体 每次运行这个程序,我都会收到HT

  • Iam使用LIferay 7.1.1 CE与Tomcat-9.0.10捆绑 登录到控制面板后,当我执行任何操作时,如保存页面、发布网页内容、添加模板...等等,我得到400坏请求错误间歇。有时,相同的操作可以正常工作,不会出现任何问题。当我使用localhost:8080访问同一个站点时,这个问题没有发生,所有操作都工作正常。我也有我的网站的https加密网址。 服务器设置如下所示, 咕噜咕噜 -

  • 我正在RestTemplate中使用exchange for GET方法。但是在exchange方法中传递requestEntity时,我得到了400个错误的请求。下面是我正在使用的代码。 生成URL: 我尝试从postman访问producer URL,其标题为Content-Type:Application/JSON,正文为{“firstName”:“a”,“lastName”:“b”,“da

  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!