首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向JavaScript/jQuery中的API发出POST请求

向JavaScript/jQuery中的API发出POST请求
EN

Stack Overflow用户
提问于 2019-03-13 07:40:20
回答 2查看 50关注 0票数 0

我一直在尝试从API获取POST请求,但我没有那么幸运地推动它通过。我想知道这是不是因为我传递的一个参数是一个对象数组。我试着让它工作了几个小时,但没有任何运气。

此post函数需要两个参数userId和classId。

//下面是我调用的api,显然不是实际的URL

代码语言:javascript
复制
let apisource = www.exampleapi.com

//这是类

代码语言:javascript
复制
let classId = 12345;

//这些是班上的学生

代码语言:javascript
复制
let userArray = [{
  "name": "user1",
  "userId": 101
}, {
  "name": "user2",
  "userId": 102
}]

我正在编写一个函数,该函数接受此userArray并将其与包含此userIds的类进行匹配。

到目前为止,我的API调用如下:

代码语言:javascript
复制
function getStudents(classId, userArray) {
  $.post(apisource) + "classes"), {
    userId: userArray.userId,
    classId: classId
  }, function(data, status) {
    console.log("students in class loaded)
  }
}

什么都没装上。有人对我可能做错的事情有什么建议或建议吗?

EN

回答 2

Stack Overflow用户

发布于 2019-03-13 07:58:47

这里有几个问题。

例如:

代码语言:javascript
复制
userArray.userId

这部分代码肯定是无效的。例如,数组有索引,而不像对象那样有键。这意味着您不能访问userId参数,因为您还没有在哪个索引中定义它。

考虑到你的数组有两个项目:

代码语言:javascript
复制
let userArray = [
  { name: 'user1', userId: 101 }, // index 0
  { name: 'user2', userId: 102 } // index 1
];

您需要以以下方式访问用户id:

代码语言:javascript
复制
userArray[0].userId // Returns 101
userArray[1].userId // Returns 102

至于请求本身,它可能看起来像这样:

代码语言:javascript
复制
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"
});
票数 3
EN

Stack Overflow用户

发布于 2019-03-13 08:02:59

看起来你需要以这种方式重构你的post实现,以避免一些语法错误。

代码语言:javascript
复制
function getStudents(classId, userArray) {
  $.post( apisource + "classes", { 
    userId: userArray.userId,
    classId: classId 
  })
  .done(function( data, status ) {
    console.log("students in class loaded")
  });
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55132283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档