django 如何从一个单独的文件运行一个java脚本(或一些)与 AJAX ?

wbgh16ku  于 2023-02-14  发布在  Go
关注(0)|答案(1)|浏览(115)

我有几个 AJAX 脚本在基本体django模板。我想运行他们在一个单独的js文件,但脚本不工作从一个文件。

  • 我的脚本在身体模板(这是一个工作代码。):*
<!--Add product to the cart after press Add button-->
    <script>
      $(document).on('click', '#add-button', function (e){
          e.preventDefault();
          var prodid = $('#add-button').val();

          $.ajax({
              type: 'POST',
              url: '{% url "add_cart" %}',
              data: {
                  product_id: $('#add-button').val(),
                  quantity: $('#qty').val(),
                  csrfmiddlewaretoken: '{{csrf_token}}',
                  action: 'POST'
              },
              success: function (json) {
                document.getElementById('cart_icon_count').innerHTML = json.qty;
              },
              error: function(xhr, errmsg, err) {}
          });
      })
    </script>

然后从正文中删除脚本并复制到js文件中:

  • 我的_js.js*
$(document).on('click', '#add-button', function (e){
          e.preventDefault();
          var prodid = $('#add-button').val();

          $.ajax({
              type: 'POST',
              url: '{% url "add_cart" %}',
              data: {
                  product_id: $('#add-button').val(),
                  quantity: $('#qty').val(),
                  csrfmiddlewaretoken: '{{csrf_token}}',
                  action: 'POST'
              },
              success: function (json) {
                document.getElementById('cart_icon_count').innerHTML = json.qty;
              },
              error: function(xhr, errmsg, err) {}
          });
      })

在体内:

<script src="{% static 'js/my_js.js' %}"></script>

通常的java脚本函数是这样工作的,但由于某种原因这个脚本不是。有什么想法从一个单独的文件运行一个或多个这样的脚本吗?

bq8i3lrv

bq8i3lrv1#

谢谢qrsngky-你帮我解决了50%的问题,并指导我找到了正确的解决方案!
{% url“add_cart”%}我已将其替换为“/cart/add_cart/"。
错误403禁止访问-问题出在csrftoken中。
我添加了我的base.html

<script type="text/javascript"> window.CSRF_TOKEN = "{{ csrf_token }}"; </script>

并在“js/my_js. js”中添加csrfmiddlewaretoken: window.CSRF_TOKEN
类似地,我将{% url“add_cart”%}放在body.html的变量中。
一切都很顺利!

相关问题