/ / AngularJS $ http.post не получава отговор на JSON успех. Вместо това пренасочва към URL на крайната точка REST - django, angularjs, forms

AngularJS $ http.post не получи JSON успех отговор. Вместо това пренасочва към URL на крайната точка REST - django, angularjs, forms

Имате проблем с AngularJS $ http.post. След завършване на заявките за пост, формата вместо да се връща отговорът JSON, вместо това той пренасочва към 127.0.0.1:8000/api/forms/create. Отговорът на бекенда е направен с Django Rest Framework. Това е искане на CORS. Формулярът angularJS се хоства на порт 9000, който осъществява повикване до порт 8000. Когато сървърът е изключен, вместо да връща предупреждението за грешка, той връща страница, която не е намерена, а URL адресът отново е пренасочен към 127.0.0.1:8000/ API / форми / създават. Оценявам всеки съвет.

По-долу е кодът на контролера за Angular script:

"use strict";
angular.module("myApp")
.controller("DemoController", function ($scope, $http, DemoService, Tools) {
var form_submit = function() {$http.post("127.0.0.1:8000/api/forms/create", {name:$scope.applicant, date:$scope.date, address=$scope.address}).success(function(data){ alert(data); })
.error(function(error){
alert("something failed");
})};
});

По-долу е index.html:

    <!DOCTYPE html>
<head>
</head>
<body ng-app="myApp" ng-submit="form_submit()">
<FORM action="http://127.0.0.1:8000/api/forms/create/" method="post">
<INPUT type="text" ng-model="applicant" name="name">
<INPUT type="text" ng-model="date" name="date">
<INPUT type="text" ng-model="address" name="address">
<INPUT type="submit" value="Send">
</FORM>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script>
<script src="controllers/demo.js"></script>
</html>

Отговори:

0 за отговор № 1

Опитали ли сте това:

<FORM ng-submit="form_submit()">

вместо

<body ng-submit="form_submit()">

Той трябва (надявам се) да публикува $ http във фонов режим


1 за отговор № 2

Опитайте се да добавите / наклонена черта в края на POST url (виж APPEND_SLASH настройка за справка):

$http.post("127.0.0.1:8000/api/forms/create/"...

0 за отговор № 3

Вашата променлива form_submit в контролера не е променлива обхват.

Вместо да използвате

var form_submit

променете го

$scope.form_submit

Мисля, че това ще работи.