Имате проблем с 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
Мисля, че това ще работи.