Paypal 访问控制允许来源

Posted

技术标签:

【中文标题】Paypal 访问控制允许来源【英文标题】:Paypal Access-Control-Allow-Origin 【发布时间】:2016-08-18 02:54:00 【问题描述】:

我正在尝试学习贝宝付款。我已经完成了一个使用 Paypal-Express-Checkout 的简单 AngularJS 应用程序。正如文档中所说,首先我必须调用 SetExpressCheckout。

$http.post("https://api-3t.sandbox.paypal.com/nvp", request)
.success(function(data)
    console.log(data);
).error(function(error)
    console.log(error);
);

request 对象中包含所有付款详情。 但是当我运行脚本时,http调用的结果是:XMLHttpRequest cannot load https://api-3t.sandbox.paypal.com/nvp. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 我试图搜索这个错误,但我什么也没找到。我该如何解决?

更新:如果请求来自表单不会给我任何错误,但如果它来自 http.post 函数它会给我一个错误

【问题讨论】:

【参考方案1】:

您必须在后端执行您的 Paypal 交易,而您看到的消息是 Paypal 强制执行该概念。请参阅this article on CORS 了解更多信息。

您的 Angular http 调用应该将基本交易信息发送到您的服务器,然后服务器将为 Paypal 构建一个 API 请求,处理来自 Paypal 的响应,然后将该信息传送给客户端使用。

[编辑以添加有关 CORS 的更多信息]

【讨论】:

在此photo总结了快速结账模式。在第一阶段,我必须调用 SetExpressCheckout API。我认为无论是来自客户端还是来自服务器的调用都没有关系 @Lorenzo 我坚持我所说的。这是此 API 功能的文档:developer.paypal.com/webapps/developer/docs/classic/… 那么为什么如果我用表格调用地址我没有给出任何错误?我不明白。 @DeeDee

以上是关于Paypal 访问控制允许来源的主要内容,如果未能解决你的问题,请参考以下文章

捕获“访问控制允许来源不允许来源”错误

访问控制允许来源多个来源域?

访问控制允许来源多个来源域?

访问控制允许来源多个来源域?

访问控制允许来源多个来源域?

访问控制允许来源多个来源域?