AngularJS:如何将 url 传递给 $http POST

标签 angularjs django

我在 AngularJS 中处理 http POST 请求时遇到问题。我收到的错误是:

POST http://localhost:8080/ 403 (Forbidden). 'rating-add' is a named url

所以我不知道为什么它不允许这样做。这是模板:

<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope, $http){
    $scope.ratings = [];
    var data = $scope.myForm = {beer_name:'', score:'', notes:'', brewer:''};
    $scope.buttonClick = false;
    $scope.is_clicked = function() {
      $scope.buttonClick=true;
      console.log($scope.buttonClick)
    }
    $scope.submit_to_form = function() {
        $http({
          method: 'POST'
          url: 'rating-add'
          data: data
        });
    }
  })
  </script>

还有 urls.py:

from django.conf.urls import url
from django.contrib import admin

from ratings.views import home, RatingCreate, delete, edit

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', RatingCreate.as_view(), name='rating-home'),
    url(r'rating/add/$', RatingCreate.as_view(), name='rating-add'),
    url(r'rating/delete/(?P<row_id>[0-9]+)/$', delete , name='rating-delete'),
    url(r'rating/edit/(?P<row_id>[0-9]+)/$', edit , name='rating-edit'),
]

最佳答案

您需要附加一个像这样的前导斜杠 -

url : '/rating/add'

查看文档 here .

You should print out your routes from Django to find out where to post.

关于AngularJS:如何将 url 传递给 $http POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36805725/

相关文章:

python - 为 Celery 和 Django 启用 Beat 时出现 TypeError

json - 在 AngularJS 中读取本地文件

angularjs - 我可以在 MEAN 应用程序中使用 Firebase 吗?

javascript - RequireJS 中的绝对库依赖

django - Django:是否可以在一个通用 View 中验证和保存多种形式的字段?

HTML:垂直对齐进度条

CSS 文件中的 Django 媒体 URL

javascript - 如何在嵌套 ng-repeat 内使用 Angular 过滤器内的 {{ }} ?

CSS/AngularJS,AngularJS Material 按钮上的文本方向

python - 在 Django View 中结合 modelformset 和 inlineformset