sendGridAPI-JSON调用

sendGridAPI-JSON调用,json,sendgrid,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: t

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

解析器错误

错误:未调用jQuery17208301184673423685_1374648217666


错误或问题在哪里?

问题是SendGrid不支持jsonp

不幸的是,切换到纯JSON也不起作用,因为SendGrid没有CORS头,浏览器不允许您访问页面。简而言之,您不能直接向SendGrid发出AJAX请求

但是,通常情况下这会更好,因为所有SendGrid端点都需要身份验证,在AJAX请求中包含用户名和密码将允许用户获取它们,然后使用它们发送电子邮件


要在前端获取这些统计数据,您需要一个服务器来获取这些数据并将其输出到您的域或具有CORS津贴的域。

这里有一个一键解决方案

  • 你对Heroku的例子
  • 使用
    {your sendgrid proxy}.herokuapp.com
    而不是
    api.sendgrid.com
  • 完成(真的)
  • 工作原理:

  • 它使用
  • 它添加所需的标题,如
    授权
    内容类型
  • 它覆盖
    访问控制允许原点
    *
    ,使您的浏览器
    CORS
    无警告

  • 看看系统是如何工作的。欢迎反馈

    嗯,这就是它不起作用的原因。我今天和支持人员谈过,看起来我需要使用cURL,非常感谢。
    cURL
    可以工作,但它不会来自JavaScript。无论您在服务器端使用何种语言,都会有某种cURL方法,允许您提取数据。