Paypal with angularjs $http.post request

angular-http, angularjs, javascript, paypal

Solution

PayPal doesn't support CORS right now so it's not possible to POST to PayPal using `$http`.

Problem

This is the standard paypal form for buying stuff. ``` <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="business" value="you@youremail.com"> <input type="hidden" name="item_name" value="Item Name"> <input type="hidden" name="currency_code" value="USD"> <input type="hidden" name="amount" value="0.00"> <input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"> </form> ``` I don't want this form, I want to do this with angularJS: ``` <button ng-click="checkOut()" class="btn btn-default">Buy</button> this.checkOut = function () { var data = { ... // handle all data }; $http.post('https://www.paypal.com/cgi-bin/webscr', data).success(function (data) { console.log("success " + data); }).error(function (data) { console.log("error " + data); }); } ``` This gives me an error : XMLHttpRequest cannot load https://www.paypal.com/cgi-bin/webscr. The request was redirected to 'https://www.paypal.com/home', which is disallowed for cross-origin requests that require preflight. Any suggestions, how to do it angularJS, without the form?

Original source