ajax - JQuery Ajax 格式问题
问题描述
我的 ajax 查询是这样工作的:
$.ajax({
type: "POST",
url: "https://bljo2x1b0h.execute-api.eu-west-2.amazonaws.com/IncrementOne/competitions?competitionName=" + competitionNameVar
+ "&competitionDescription=" + competitionDescriptionVar + "&competitionLocation=" + competitionLocationVar + "&competitionNumberOfProblems=" + competitionNumberOfProblemsVar
+ "&competitionNumberOfZones=" + competitionNumberOfZonesVar + "&competitionDate=" + competitionDateVar + "&competitionUsername=" + localStorage.myUserName;,
crossDomain: true,
dataType: "text",
但不是当我尝试将数据放入数据中时:像这样的参数(或没有String()):
data: {
"competitionName": String(competitionNameVar),
"competitionDescription": String(competitionDescriptionVar),
"competitionLocation": String(competitionLocationVar),
"competitionNumberOfProblems": String(competitionNumberOfProblemsVar),
"competitionNumberOfZones": String(competitionNumberOfZonesVar),
"competitionDate": String(competitionDateVar),
"competitionUsername": String(localStorage.myUserName),
},
我看不出是什么问题。疯狂的是,我以类似的方式设置了一个 get 请求,效果很好:
$.ajax({
type: "GET",
url: "https://bljo2x1b0h.execute-api.eu-west-2.amazonaws.com/IncrementOne/competitions",
crossDomain: true,
data: {
"competitionsNameParameter": String(CompetitionName),
},
解决方案
查询参数和请求正文之间存在差异。根据POST
API 是否接受查询参数或请求正文,您需要以这种方式调用。但是,POST
API 应该将有效负载作为请求正文。在这种情况下,data
需要属性而不是请求参数。
请咨询 API 提供者并首先澄清这一点。因此,编写客户端代码来使用 API。
此外,当您说它不起作用时,您能否分享浏览器网络选项卡中的结果(请求 URL、正文、响应标头、消息等)?
推荐阅读
- java - 如何使用 JDBC 以安全模式(kerberos+ssl)连接配置单元?
- r - 如何使用参数化过滤器与来自 power bi 的 r 数据进行通信
- continuous-integration - Circle CI 无法添加项目,它也不存在于工作流中
- node.js - 通过在猫鼬中填充匹配结果来查找文档
- javascript - WebStorm 在 TypeScript 上下文中不显示纯 JS 库的自动完成
- android - 可滚动的 LinearLayout 高度限制
- android - DialogFragment 显示具有不同“片段”的步骤
- makefile - 在 Win10 64 位中“制作”OMNet5.4 时出错 (1803)
- json - 将任意 json 数据读取到 javafx 树视图中,并且只显示其中任何数组的第一个元素
- rest - 嵌套资源的 REST url