我尝试使用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":" *"到标题,但没有任何变化。