Javascript Sendgrid v3 api返回错误的请求
我正在尝试使用sendgrid V3 api将我们的用户添加到邮件列表中。我构造了下面的Ajax请求来满足他们的API,但是我不断得到一个Javascript Sendgrid v3 api返回错误的请求,javascript,ajax,sendgrid,Javascript,Ajax,Sendgrid,我正在尝试使用sendgrid V3 api将我们的用户添加到邮件列表中。我构造了下面的Ajax请求来满足他们的API,但是我不断得到一个错误请求。我省略了xhr.setRequestHeader,但我有一个有效的API键,它可以工作,因为省略它时,它返回403。现在,我只得到了400个坏的身体要求。我已经让我的请求体看起来和他们的例子一模一样,但我仍然被卡住了 更新了代码的工作示例和: 让我们看看你提出的请求,然后从那里开始。您向一个API发出请求并发送一些数据,作为内容类型:applica
错误请求。我省略了xhr.setRequestHeader
,但我有一个有效的API键,它可以工作,因为省略它时,它返回403。现在,我只得到了400个坏的身体要求。我已经让我的请求体看起来和他们的例子一模一样,但我仍然被卡住了
更新了代码的工作示例和:
让我们看看你提出的请求,然后从那里开始。您向一个API发出请求并发送一些数据,作为内容类型:application/json代码>。API正在响应400错误请求
。API返回400的原因是因为您发送的请求服务器不喜欢或无法读取/解析
您的代码还有一些其他问题:
v3上联系人API的端点为https://api.sendgrid.com/v3/contactdb/recipients
您根本没有发送任何身份验证头。您可能无法在客户端执行此操作,因为这将是一个巨大的安全风险,将Sendgrid的API密钥公开给全世界
谢谢你的回复,布兰登。“联系人”是一个打字错误。在我的代码中,它始终是/contactdb/
,并且错误仍然存在。我也有一个密钥的授权,但出于明显的原因,我把它从我的问题主体中排除了。还有其他想法吗?我能够重现这个问题并有一段工作代码,我会用它更新我的答案。Sendgrid API V3希望对你有所帮助!
var sendgridData =
[
{
"marketing_emails": 0,
"weekly_emails": 0,
"email": userProfile.email,
"first_name": "foo",
"last_name": 'bar',
"userid": 2,
}
]
$.ajax({
method: 'POST',
url: 'https://api.sendgrid.com/v3/contactdb/recipients',
data: sendgridData,
dataType: 'json',
contentType: 'application/json',
},
success:
function(res)
{
console.log(1, res)
Modal.close();
},
error:
function(e)
{
Modal.close();
console.log(1,e);
}
})
var apiKey = 'Bearer [API KEY HERE]'
var sendgridData = [
{
"marketing_emails": 0,
"weekly_emails": 0,
"email": 'someperson@example.com',
"first_name": "foo",
"last_name": 'bar',
"userid": 2,
}
]
$.ajax({
method: 'POST',
url: 'https://api.sendgrid.com/v3/contactdb/recipients',
data: JSON.stringify(sendgridData),
dataType: 'json',
headers: { 'Authorization': apiKey },
crossDomain: true
})
.done(function(res) {
console.log(1, res)
})
.fail(function (e) {
console.log(2, e.status, e.responseText)
})