because curl is not a browser and therefore has no cross site origin control built in. You need to setup your server to allow posts from other domains.
On Thursday, May 8, 2014 12:23:56 AM UTC-7, Connor Leech wrote: > > > I am trying to make a simple POST request to > http://battle.platform45.com/register The server is setup to respond with > JSON. So from the command line: > > $ curl --data '{"name": "Connor", "email": > "[email protected]<javascript:>"}' > http://battle.platform45.com/register > > successfully returns > > {"id":"3118","x":1,"y":9}% > > I try to do the same thing in angular: > > app.controller('BattleshipCtrl', function ($scope, $http) { > $scope.game = {} > $scope.newGame = function(name, email){ > $http.post("http://battle.platform45.com/register", { > name: name, > email: email > }).success(function(data, status, headers, config){ > console.log('Success') > }) > }}); > > with a simple view: > > <input type='text' ng-model='game.name'><input type='text' > ng-model='game.email'><div class='btn btn-success' > ng-click='newGame(game.name, game.email)'>New game</div> > > When I try to make the request I get an error: > > OPTIONS http://battle.platform45.com/register 404 (Not Found) > angular.js:7962XMLHttpRequest cannot load > http://battle.platform45.com/register. No 'Access-Control-Allow-Origin' > header is present on the requested resource. Origin 'http://0.0.0.0:9000' is > therefore not allowed access. > > How does the POST request go through with curl but not angular? What can I > do to successfully make the request with angular? > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
