我在AJAX请求中使用Hubspot API。但是在控制台中显示跟随错误
因此,如何在Hubspot中启用 Access-Control-Allow-Origin 。
Failed to load https://api.hubapi.com/content/api/v2/pages?hapikey=demo:
Response to preflight request doesn't pass access control check: No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin
'https://preview.hs-sites.com' is therefore not allowed access.
如果我无法在Hubspot中启用 Access-Control-Allow-Origin ,那么使用此API的下一个选择是什么。
最佳答案
根据他们的支持,HubSpot API不支持跨源CORS / AJAX请求,因为它是在客户端公开API密钥的。
相反,您可以做的是创建一个代理服务器,在该服务器中,您将从自己的服务器发出请求并调用Hubspot端点,如下所示:
var express = require('express');
var request = require('request');
var app = express();
var port = process.env.PORT || 8081;
const HUBSPOT_API_KEY = 'xxxx-xxxx-xxxx-xxxx-xxxx'
const HUBSPOT_ENDPOINT = `https://api.hubapi.com/content/api/v2/blog-posts?hapikey=${HUBSPOT_API_KEY}`
app.get('/api/hubspot', function(req, res) {
request(HUBSPOT_ENDPOINT, function (error, response, body) {
console.log('error:', error);
console.log('statusCode:', response && response.statusCode);
console.log('body:', body);
res.json(body);
});
});
app.listen(port);
请记住,这只是一个示例,使用nodejs / express / request向您解释该想法,并不意味着将其用于生产!您可以修改或使用自己喜欢的服务器语言,平台等来实现相同的目的。
您可以对不支持跨域请求的任何端点使用此原理。