javascript - 由于 CORS,Hubspot API 无法正常工作

标签 javascript api hubspot

我在 AJAX 请求中使用 Hubspot API。但在 console

中显示 Following error

那么如何在 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 key 。

您可以改为创建一个代理服务器,您可以在其中从您自己的服务器发出请求并调用 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,并不适合生产!您可以修改或使用您喜欢的服务器语言、平台等来实现相同的目的。

您可以将此原则用于任何不支持跨源请求的端点。

关于javascript - 由于 CORS,Hubspot API 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48577247/

相关文章:

api - azure 自定义 api 包含子属性

c# - 通过发送信号向下滚动网络浏览器

javascript - 从 Google map 中清除折线,然后重新启动它

javascript - Visual Composer 不加载 Hubspot 表单嵌入

javascript - Hubspot js 标签在复制和粘贴后未立即关闭

mobile - Hubspot - 响应式设计

javascript - 如何通过在打开按钮区域外单击来关闭菜单?

javascript - 如何处理 catch 中的错误 - vue.js

c# - 另一个 ASP.net AJAX SYS 未定义错误

javascript - Highcharts - 如何从工具提示访问点的多个轴的类别