【问题标题】:Django python paypalrestsdk - No 'Access-Control-Allow-Origin' and ppxo_unhandled_error errorDjango python paypalrestsdk - 没有'Access-Control-Allow-Origin'和ppxo_unhandled_error错误
【发布时间】:2018-09-28 17:30:31
【问题描述】:

我正在尝试使用 paypalrestsdk 在 Django 中实现 paypal。

我按照此处示例中的代码示例进行操作:https://prettyprinted.com/blog/1125955/creating-paypal-express-payments-in-flask

但是有这个错误:

这是我的模板 .html、views.py 和 urls.py 的代码 sn-ps https://gist.github.com/axilaris/1e6e34ba5915abceb0dbd06d46baf08b

这里是显示按钮的模板代码:

<div id="paypal-button"></div>
<script src="https://www.paypalobjects.com/api/checkout.js"></script>

<script>
    var CREATE_PAYMENT_URL  = 'http://127.0.0.1:8000/payment_create';
    var EXECUTE_PAYMENT_URL = 'http://127.0.0.1:8000/payment_execute';                        

    paypal.Button.render({

        env: 'sandbox', // Or 'sandbox'

        commit: true, // Show a 'Pay Now' button

        payment: function() {
            console.log("payment function")
            return paypal.request.post(CREATE_PAYMENT_URL).then(function(data) {
                console.log("return create payment")
                return data.paymentID;
            });
        },

        onAuthorize: function(data) {
            return paypal.request.post(EXECUTE_PAYMENT_URL, {
                paymentID: data.paymentID,
                payerID:   data.payerID
            }).then(function(res) {

                console.log(res.success)
                // The payment is complete!
                // You can now show a confirmation message to the customer
            });
        }

    }, '#paypal-button');
</script>     

是什么问题,如何解决,ppxo_unhandled_error 是什么?

另外,在 Django 上正确实施 paypal 的最佳方法是什么。 (我只是没有看到任何好的文档)

Django==1.11.7

【问题讨论】:

    标签: python django paypal paypal-rest-sdk


    【解决方案1】:

    当 web url 的请求 (localhost:8000) 和远程地址 (http://127.0.0.1:8000/) 不同时,这是关于 Http 请求的最常见问题。 如果您更改本地主机端口,那么也会发生此问题。

    试试这两个选项:

    1.将此扩展添加到您的 crome download extension from here

    2.Get solution from this stack question

    【讨论】:

    【解决方案2】:

    您的originlocalhost:8000,您正尝试访问127.0.0.1:8000 的资源。该页面在localhost:8000127.0.0.1:8000 上显示相同,因为localhost(通常)在您的系统上转换为127.0.0.1,但您的浏览器将这两个目的地解释为不同的地址。因此,您的浏览器会阻止您从源 localhost:8000 访问位于 127.0.0.1:8000 的资源,因为目标资源没有响应 Access-Control-Allow-Origin: http://127.0.0.1:8000 标头。

    我建议将您的来源(您在浏览器中的 URL)更改为 127.0.0.1:8000,而不是添加标题。或者更改 JavaScript 以使用 localhost:8000 地址。

    Access-Control-Allow-Origin (Mozilla)

    Access-Control-Allow-Origin 响应标头指示响应是否可以与具有给定来源的资源共享。

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 2017-06-15
      • 2016-02-13
      • 2018-09-19
      • 1970-01-01
      • 2018-12-12
      • 2022-09-25
      相关资源
      最近更新 更多