Sendgrid API - JSON调用

时间:2013-07-24 07:01:20

标签: json sendgrid

我正在尝试从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

错误或问题在哪里?

2 个答案:

答案 0 :(得分:5)

问题是SendGrid不支持jsonp。

不幸的是,切换到普通JSON也不起作用,因为SendGrid没有CORS标头,浏览器也不允许您访问这些页面。简而言之,您无法向SendGrid传播AJAX请求。

但是,通常这样做会更好,因为所有SendGrid端点都需要身份验证,并且在AJAX请求中使用您的用户名和密码将允许用户接收它们然后使用它们发送电子邮件。

要在前端获取这些统计信息,您需要一台服务器来获取它们并将其输出到您的域或具有CORS限额的域中。

答案 1 :(得分:0)

这是一键式解决方案!

  1. Deploy您的SendGrid Proxy实例到Heroku
  2. 使用{your-sendgrid-proxy}.herokuapp.com代替api.sendgrid.com
  3. 完成(确实)

工作原理:

  1. 它使用express-http-proxy创建一个基于节点的http代理
  2. 它将添加所需的标头,例如AuthorizationContent-Type
  3. 它将Access-Control-Allow-Origin覆盖为*,以使浏览器CORS免受警告

查看magic的工作方式。欢迎反馈!