【问题标题】:Paypal Access-Control-Allow-OriginPaypal 访问控制允许来源
【发布时间】: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 函数它会给我一个错误

【问题讨论】:

    标签: javascript angularjs http paypal


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2017-12-15
    • 2022-01-09
    • 2013-07-04
    • 2012-11-05
    • 2019-01-07
    相关资源
    最近更新 更多