【发布时间】:2019-04-29 09:17:12
【问题描述】:
亲爱的朋友们,我有一个奇怪的问题,我尝试连接到 API,当我尝试在 postman 或 insomnia 中执行 API 请求时,一切正常。当我在我的网站甚至本地主机上使用相同的代码时,潜在客户请求不起作用并告诉我未定义 api-version。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
var settings = {
"async": true,
"crossDomain": true,
"url": "https://affiliate-api.tradingcrm.com:4477/token",
"method": "POST",
"data": "{ userName: \"alpt\", password: \"Alpt@12345\" }"
}
$.ajax(settings).done(function (response) {
var settings2 = {
"async": true,
"crossDomain": true,
"url": "https://affiliate-api.tradingcrm.com:4477/accounts/lead",
"method": "POST",
"headers": {
"Authorization": "Bearer " + response.Token,
"Api-Version": "3",
"Content-Type": "application/json"
},
"data": "{firstName:\"test\",lastName:\"test2\",email:\"test@test.test\"}"
}
$.ajax(settings2).done(function (response2) {
console.log(response2.accountId);
});
});
</script>
【问题讨论】:
-
"Api-Version"我不认为这是一个有效的标题 -
这是一个有效的标题,如果你在 Insomnia 或 postman 中测试这个确切的标题,你会得到非常好的结果。
-
您是否检查了请求标头上开发人员工具中的网络选项卡?也许 jQuery 会因为您的设置过滤掉您的标题(只是建议)。
-
很可能
Api-Version标头应该是X-Api-Version,但仅凭源代码无法确定 -
affiliate-api.tradingcrm.com:4477/swagger/# 这是我的 API 手册的招摇,用户名和密码在我提供用于测试的源代码中
标签: javascript jquery api postman