我一直在尝试从API获取POST请求,但我没有那么幸运地推动它通过。我想知道这是不是因为我传递的一个参数是一个对象数组。我试着让它工作了几个小时,但没有任何运气。
此post函数需要两个参数userId和classId。
//下面是我调用的api,显然不是实际的URL
let apisource = www.exampleapi.com
//这是类
let classId = 12345;
//这些是班上的学生
let userArray = [{
"name": "user1",
"userId": 101
}, {
"name": "user2",
"userId": 102
}]
我正在编写一个函数,该函数接受此userArray并将其与包含此userIds的类进行匹配。
到目前为止,我的API调用如下:
function getStudents(classId, userArray) {
$.post(apisource) + "classes"), {
userId: userArray.userId,
classId: classId
}, function(data, status) {
console.log("students in class loaded)
}
}
什么都没装上。有人对我可能做错的事情有什么建议或建议吗?
发布于 2019-03-13 07:58:47
这里有几个问题。
例如:
userArray.userId
这部分代码肯定是无效的。例如,数组有索引,而不像对象那样有键。这意味着您不能访问userId参数,因为您还没有在哪个索引中定义它。
考虑到你的数组有两个项目:
let userArray = [
{ name: 'user1', userId: 101 }, // index 0
{ name: 'user2', userId: 102 } // index 1
];
您需要以以下方式访问用户id:
userArray[0].userId // Returns 101
userArray[1].userId // Returns 102
至于请求本身,它可能看起来像这样:
let apisource = www.exampleapi.com;
let classId = 12345;
$.ajax({
type: 'POST',
url: apisource,
data: JSON.stringify({ userId: userArray[0].userId, classId: classId }),
contentType: "application/json"
});
发布于 2019-03-13 08:02:59
看起来你需要以这种方式重构你的post实现,以避免一些语法错误。
function getStudents(classId, userArray) {
$.post( apisource + "classes", {
userId: userArray.userId,
classId: classId
})
.done(function( data, status ) {
console.log("students in class loaded")
});
}
https://stackoverflow.com/questions/55132283
复制相似问题