当我使用JQuery执行此操作时,为什么我的AJAX请求失败,但是当我使用浏览器扩展(RESTED)时它可以工作?

时间:2017-12-05 17:00:50

标签: javascript jquery ajax rest typescript

我尝试使用Zoho API自动发送电子邮件。

我有一个Auth Token,我尝试使用Firefox扩展RESTED向他们的API发出POST请求,并且它有效,测试电子邮件已成功发送多次。

然后我尝试用JQuery在javascript中实现它,但它不起作用,我无法弄清楚原因。

请求的结构如下所示:RESTED:

URL: "The URL of the API",
Method: "POST",

Headers:

Authorization: "The auth token",
Content-Type: "application/json"

and then request body:

{
    "fromAddress": "my email",
    "toAddress": "target email",
    "subject": "the subject",
    "content": "The body"
}

这很好。

那是我在Javascript(打字稿)中写的内容

const zohoURL = "The URL of the API";
const headers = {
  "Authorization": "The auth token",
  "Content-Type": "application/json"
};

const messageObject = {
    "fromAddress": "my email",
    "toAddress": "target email",
    "subject": "the subject",
    "content": "The body"
};

$.ajax({
  "type": "POST",
  "headers": headers,
  "url": zohoURL,
  "data": messageObject
}).done(done => {
  console.log("DONE: ", done);
}).fail(err => {
  console.error("ERROR: ", err);
});

但无论我尝试什么,它都会失败。我尝试设置标头以允许CORS,更改ajax请求的dataType,使用对象上的JSON.Stringify(),但没有任何效果。

在控制台中,我注意到当我使用Firefox扩展程序发出请求时,有

origin moz-extension://some id

当从javascript执行时,原点是localhost。可能是请求被拒绝,因为它是从localhost开始的吗?

错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://mail.zoho.com/api/accounts/... (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

我尝试添加" Access-Control-Allow-Origin":" *"到标题,但没有任何变化。

0 个答案:

没有答案