我试图使用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);
}
});
它说:无法根据请求构建资源。我错过了什么?
以防其他人碰到这件事。我有一个网站,它在桌面浏览器上运行得很好,但我在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错误一点帮助都没有。
是的。您需要对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块之外定义的。
最后,我犯了一个错误,原因是我需要对发送的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错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!