从浏览器客户端javascript调用Easypost API

时间:2018-01-24 01:25:54

标签: javascript jquery easypost

我试图从javascript / jquery调用Easypost API(是的,我知道这是一个“坏”的想法因为JS代码包含明文帐户密钥,但是这个JS和HTML都在我们网站的安全部分仅适用于特别授权的人员。)

我的电话就像:

$.ajax({
    url: uri,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    headers: {
        "Authorization": "Basic " + btoa(username + ":" + password)
    },
    success: function(result) {...},
    error: function(...) {...}
 });

它返回404并且Chrome显示此错误:

无法加载https://api.easypost.com/v2/shipments:对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“https://localhost”访问。响应的HTTP状态代码为404.

这可能吗?

1 个答案:

答案 0 :(得分:1)

这意味着easypost API服务器不接受来自localhost的CORS请求或请求。

根据他们的文档,他们只提供服务器端库来与他们的API进行交互。我的猜测是你无法通过网络应用直接与它进行互动。

您最好的选择是使用代理,您可以自己开发代理或使用node-http-proxy之类的代理来代理您的API调用。 (有php或python等价物)

代理服务器将能够发出请求,然后将其转发到您的应用程序。

建议进一步阅读:在谷歌上输入了解CORS 并阅读更多相关信息。