2

您好我正在尝试向 JavaScript Web 应用程序中的 SparkPost API 发送 POST 调用。它适用于 curl 和 Postman,但是当我尝试从本地主机站点发送时,我会收到401 Unauthorized错误消息。

我当前的代码如下所示,但我也尝试过fetch同样的结果。

sendEmail(subject, data) {
let textbody = "blah blah blah";
const url = "https://api.sparkpost.com/api/v1/transmissions";
const fetchbody = {
  content: {
    from: "sandbox@sparkpostbox.com",
    subject: subject,
    text: textbody
  },
  recipients: [{address: "myaddress@gmail.com"}]
};
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
  if (this.readyState === 4) {
    console.log(this.responseText);
  }
});
xhr.open("POST", url);
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("accept", "application/json");
xhr.setRequestHeader("authorization", creds);
xhr.setRequestHeader("cache-control", "no-cache");
xhr.send(JSON.stringify(fetchbody));
}

我的凭据设置有问题吗?请注意,creds它设置为我的秘密 API 密钥字符串。

4

1 回答 1

3

在与 Sparkpost 开发人员交谈后想通了——该服务只允许“严格的 CORS”,即来自服务器端的请求,而我是从客户端代码发送请求。

于 2017-01-21T23:26:55.470 回答