我正在尝试从SendGrid API接收数据
$.ajax({
type:'GET',
url:"https://sendgrid.com/api/bounces.get.json",
data: {api_user:'username',api_key:'userkey',date:1},
success: function(data){
console.log(data)
},
crossDomain: true,
dataType: 'jsonp',
error:function(a,b,c){
console.log(a);
}
});
控制台显示:
对象{readyState = 4,status = 200,statusText =“success”}
parsererror
错误:未调用jQuery17208301184673423685_1374648217666
错误或问题在哪里?
答案 0 :(得分:5)
问题是SendGrid不支持jsonp。
不幸的是,切换到普通JSON也不起作用,因为SendGrid没有CORS标头,浏览器也不允许您访问这些页面。简而言之,您无法向SendGrid传播AJAX请求。
但是,通常这样做会更好,因为所有SendGrid端点都需要身份验证,并且在AJAX请求中使用您的用户名和密码将允许用户接收它们然后使用它们发送电子邮件。
要在前端获取这些统计信息,您需要一台服务器来获取它们并将其输出到您的域或具有CORS限额的域中。
答案 1 :(得分:0)
这是一键式解决方案!
{your-sendgrid-proxy}.herokuapp.com
代替api.sendgrid.com
工作原理:
Authorization
和Content-Type
Access-Control-Allow-Origin
覆盖为*
,以使浏览器CORS
免受警告查看magic的工作方式。欢迎反馈!