Jquery 通过AJAX发送JSON POST请求
我正在使用POST向服务器提交数据,控制台中出现以下错误: POST localhost/myProject/webapp/setAccount 400(所需字符串参数'accountID'不存在) 用户将从组合框中选择帐户ID,这是应该在帖子中传递的内容 这是我的密码:Jquery 通过AJAX发送JSON POST请求,jquery,ajax,json,post,backbone.js,Jquery,Ajax,Json,Post,Backbone.js,我正在使用POST向服务器提交数据,控制台中出现以下错误: POST localhost/myProject/webapp/setAccount 400(所需字符串参数'accountID'不存在) 用户将从组合框中选择帐户ID,这是应该在帖子中传递的内容 这是我的密码: accountSelected: function () { var accountSelected = $("#accountcombobox").val(); console.log("Selected Accoun
accountSelected: function () {
var accountSelected = $("#accountcombobox").val();
console.log("Selected Account: " + accountSelected);
var myUrl = "webapp/setAccount";
$.ajax({
url: myUrl,
type: "POST",
data: accountSelected,
dataType: "json",
contentType: "application/json"
})
.done(function (data) {
console.log("Response " + JSON.stringify(data));
})
}
第一个console.log按预期显示所选帐户ID,因此我知道该值是正确的。我想将这个值传递给POST请求,这是我认为我正在做的事情,但似乎无法让它工作
编辑
谢谢你的回答,但是没有一个答案对我有效,仍然是同样的错误
我也在使用木偶和脊梁,这会影响它吗?试试这个
data:{ accountSelected: accountSelected},
以及
在webapp/setAccount中
echo $_POST['accountSelected'];
您的数据应为key:value格式,因此: 编辑:更改为成功
$.ajax({
url: myUrl,
type: "POST",
data:{
accountID: accountSelected
},
dataType: "json",
contentType: "application/json",
success: function(data)
{
console.log("Response " +data.accountSelected);
}
});
不需要使用JSON.stringify,因为您已经提到了数据类型:'JSON',所以试试这个
$.ajax({
url: myUrl,
type: "POST",
data: { accountSelected: accountSelected},
dataType: "json",
contentType: "application/json"
})
.done(function (data) {
console.log("Response " +data.accountSelected);
});
缺少分号并且已经获得值的json没有neet来字符串化它第一个console.log实际输出什么?你能把你的代码放在JSFIDLE上吗?谢谢,但仍然得到完全相同的错误,还有什么我可以尝试的吗?在我的编辑中尝试代码(删除.done位),看看发生了什么相同的错误我担心-我使用的是主干和木偶-这会导致问题吗?如果我更改:data:{accountID:“Full”}我将不再得到错误-但显然它需要链接到组合框boxNo。对于
contentType:“application/json”
数据
需要是一个json字符串,而不是一个对象。这些都不适用于我-同样的错误,我也在使用Backbone.js和木偶,这可能会影响它吗?这是不正确的,JQuery文档声明“dataType”是服务器的预期返回类型。“accountID=“+accountSelected,
是(或者如果应用了正确的转义)URL编码的数据。它与contentType:“application/json”不匹配,
@Quentin您对一些答案的评论是不正确的。你能提供正确的答案吗?因为它对我也不起作用:(@BogdanMart-你看到顶部的大黄色“这个问题已经有答案”框了吗?点击链接。
$.ajax({
url: myUrl,
type: "POST",
data: { accountSelected: accountSelected},
dataType: "json",
contentType: "application/json"
})
.done(function (data) {
console.log("Response " +data.accountSelected);
});
accountSelected: function () {
var accountSelected = $("#accountcombobox").val();
console.log("Selected Account: " + accountSelected);
var myUrl = "webapp/setAccount";
$.ajax({
url: myUrl,
type: "POST",
data: "accountID="+accountSelected,
dataType: "json",
contentType: "application/json",
success: function(result) {
console.log("Response " + JSON.stringify(result));
},
error : function(request, textStatus, errorThrown) {
alert('textStatus ' + textStatus);
alert('errorThrown ' + errorThrown);
}
});
}