向 mailjet 发送 ajax 请求时无法消除多源错误
Couldn't get rid of the multi-origins error when sending an ajax request to mailjet
我正在使用 AJAX 请求在我的 Web 应用程序中尝试使用 mailjet(因为 mandrill 测试不成功,因为发送的电子邮件仍然 'queued' 并且从未到达邮箱)邮件服务:
$.ajax({
// The 'type' property sets the HTTP method.
// A value of 'PUT' or 'DELETE' will trigger a preflight request.
type: 'POST',
// The URL to make the request to.
url: 'https://api.mailjet.com/v3/send/message',
contentType: 'text/plain',
data: {
'user': '10ca83...public key 1ccd945:f58e84f9d...private key..8e9502fd7a',
'from': emaildata.email,
'to': 'recipiant@gmail.com',
'subject': 'mailjet test',
'text': emaildata.msg
},
xhrFields: {
withCredentials: false
},
headers: {
},
success: function() {
// Here's where you handle a successful response.
},
error: function() {
// Here's where you handle an error response.
// Note that if the error was due to a CORS issue,
// this function will still fire, but there won't be any additional
// information about the error.
}
}).done(function(response) {
console.log(response); // if you're into that sorta thing
});
}
因为我在浏览器控制台中收到此错误:
index.php:1 XMLHttpRequest cannot load https://api.mailjet.com/v3/send/message. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 401.
我试图找到摆脱它的解决方案,我找到了两个解决方案:
1/ 使用 CORS。
2/ 我还发现从本地网页发送请求可能会出现问题,所以我运行了一个 wamp 服务器并在其上启动了应用程序,而不是直接在浏览器中启动。
但我仍然有那个错误:/有什么建议吗?
接下来我将尝试使用 google gmail API 发送电子邮件。
查看 http://dev.mailjet.com 中可用的文档 - 我认为 API 不能用于客户端 javascript。
我认为,您需要使用服务器端技术与 API 通信,这并非不合理,大多数其他 API 也会有相同的要求。
如果您想设置 mailjet,他们已经为它编写了一个 php 包装器 https://github.com/mailjet/mailjet-apiv3-php-simple
我正在使用 AJAX 请求在我的 Web 应用程序中尝试使用 mailjet(因为 mandrill 测试不成功,因为发送的电子邮件仍然 'queued' 并且从未到达邮箱)邮件服务:
$.ajax({
// The 'type' property sets the HTTP method.
// A value of 'PUT' or 'DELETE' will trigger a preflight request.
type: 'POST',
// The URL to make the request to.
url: 'https://api.mailjet.com/v3/send/message',
contentType: 'text/plain',
data: {
'user': '10ca83...public key 1ccd945:f58e84f9d...private key..8e9502fd7a',
'from': emaildata.email,
'to': 'recipiant@gmail.com',
'subject': 'mailjet test',
'text': emaildata.msg
},
xhrFields: {
withCredentials: false
},
headers: {
},
success: function() {
// Here's where you handle a successful response.
},
error: function() {
// Here's where you handle an error response.
// Note that if the error was due to a CORS issue,
// this function will still fire, but there won't be any additional
// information about the error.
}
}).done(function(response) {
console.log(response); // if you're into that sorta thing
});
}
因为我在浏览器控制台中收到此错误:
index.php:1 XMLHttpRequest cannot load https://api.mailjet.com/v3/send/message. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 401.
我试图找到摆脱它的解决方案,我找到了两个解决方案: 1/ 使用 CORS。 2/ 我还发现从本地网页发送请求可能会出现问题,所以我运行了一个 wamp 服务器并在其上启动了应用程序,而不是直接在浏览器中启动。
但我仍然有那个错误:/有什么建议吗? 接下来我将尝试使用 google gmail API 发送电子邮件。
查看 http://dev.mailjet.com 中可用的文档 - 我认为 API 不能用于客户端 javascript。
我认为,您需要使用服务器端技术与 API 通信,这并非不合理,大多数其他 API 也会有相同的要求。
如果您想设置 mailjet,他们已经为它编写了一个 php 包装器 https://github.com/mailjet/mailjet-apiv3-php-simple