我正在努力学习PayPal付款。我做了一个使用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函数它会给我一个错误
答案 0 :(得分:1)
您必须在后端执行Paypal交易,而您看到的消息是Paypal强制执行该概念。有关详细信息,请参阅this article on CORS。
您的角度http呼叫应该将基本交易信息发送到您的服务器,然后服务器将构建Paypal的API请求,处理来自Paypal的响应,然后传达该信息供客户端使用。
[编辑以添加有关CORS的更多信息]