Php 在Wordpress中使用Sendgrid API

Php 在Wordpress中使用Sendgrid API,php,angularjs,wordpress,.htaccess,Php,Angularjs,Wordpress,.htaccess,我试图在Wordpress上使用Sendgrid API,但出现了此错误 检查时 XMLHttpRequest cannot load https://api.sendgrid.com/v3/mail/send. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'https://sendgrid.api-doc

我试图在Wordpress上使用Sendgrid API,但出现了此错误 检查时

XMLHttpRequest cannot load https://api.sendgrid.com/v3/mail/send. Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'https://sendgrid.api-docs.io' that is not equal to the supplied origin. Origin 'https://localhost2' is therefore not allowed access.
首先,我认为这是一个需要HTTPS的服务,所以我在本地MAMP服务器上设置了HTTPS,但仍然不起作用,然后我尝试了多种策略,即更改htaccess文件,在文件中添加CORS头,但没有真正起作用

$http.post('https://api.sendgrid.com/v3/mail/send',mail,{ headers: {
            'Authorization': 'Bearer MY IDENTICATION',
            'Content-Type': 'application/json'
        }})
    .success(function(data){
        console.log('Error' + data);
    })
    .error(function(data){
        console.log('Error' + data);
    });
这是我用来发布到API的角度函数


谁能帮我解释一下错误的确切含义(或者我遗漏了什么)

我不知道Angular,所以我可能不完全理解架构。在我看来,您正在尝试从客户端的浏览器进行API调用。但是,根据Sendgrid的文档:

当您有一个只接触API的浏览器应用程序时 API密钥必须嵌入到应用程序中。任何有权访问 仅浏览器应用程序可以访问所有Javascript源代码, 包括API密钥

公开访问API密钥可能会导致 使用API密钥验证API调用-这是一个重要的问题 您和SendGrid的安全问题

通过


不要从前端的浏览器进行API调用,而是确保调用是从后端应用程序本身进行的。

您遇到了浏览器的跨源策略-sendgrid不仅允许从其他域访问其API,还允许接受sendgrid.com本身。您可以使用中间件或代理绕过此限制

我为我的一个Angular项目编写了一个小型HTTP代理,可以使用您的凭据和一键部署在Heroku上托管:


sendGridCORS策略不允许浏览器调用其API(除非您位于“sendGrid.API docs.io”域中)。。。您必须从服务器发送电子邮件

但如果只是出于测试或开发目的,您可以在github上使用我的演示

将您的数据发布到

同样的问题,比如: