我正在使用POST向服务器提交数据,此错误出现在控制台中:
POST localhost / myProject / webapp / setAccount 400(必需字符串参数'accountID'不存在)
用户将从组合框中选择一个帐户ID,这是应该在帖子中传递的内容。
这是我的代码:
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请求,这是我认为我正在做的但似乎无法让它工作。
修改
感谢您的回复,但似乎没有任何答案对我有用,仍然是同样的错误。
我也在使用Marionette和Backbone,这会影响吗?
答案 0 :(得分:-1)
试试这个,
data:{ accountSelected: accountSelected},
和
console.log("Response " + data); //removed JSON.stringify
在webapp / setAccount中,
echo $_POST['accountSelected'];
答案 1 :(得分:-2)
您的数据应该是关键:值格式,所以:
编辑:改为成功
$.ajax({
url: myUrl,
type: "POST",
data:{
accountID: accountSelected
},
dataType: "json",
contentType: "application/json",
success: function(data)
{
console.log("Response " +data.accountSelected);
}
});
答案 2 :(得分:-2)
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);
}
});
}
答案 3 :(得分:-3)
不需要使用JSON.stringify因为你已经提到过dataType:'json'所以试试这个
$.ajax({
url: myUrl,
type: "POST",
data: { accountSelected: accountSelected},
dataType: "json",
contentType: "application/json"
})
.done(function (data) {
console.log("Response " +data.accountSelected);
});