【问题标题】:AJAX fails when it is moved to another js file in Django projectAJAX 移动到 Django 项目中的另一个 js 文件时失败
【发布时间】:2020-04-26 22:23:53
【问题描述】:

我在 index.html 文件中有一个代码:

<script>
$.ajax({
    type: 'GET',
    url: '{% url "myProject:load" %}',
    data: {val: document.getElementById('val').value, sections: secCols},
    success:function(json){},
    error : function(xhr,errmsg,err) {
        alert("ajax error: load")
    } 
...
</script>

load 是 views.py 中的一个函数:

def load(request):
...

我将这段代码移动到另一个文件夹中的 js 文件中。我移动它后会产生错误。 能说说怎么解决吗?

【问题讨论】:

  • 因为在js文件中它不能使用django模板标签所以你的{% url "myProject:load" %}变得没用,如果你想使用url写它的路径
  • 这是一个 django 语法 {% url "myProject:load" %}。如果你在这里遇到错误'{% url "myProject:load" %}',那么你需要在你的 html 文件中创建一个变量,然后在你的 JS 中使用它。像 url = '{% url "myProject:load" %}' 和 JS 中的 url: url
  • 哦,我明白了,你能把它作为答案@Nalin Dobhal 吗?
  • 好吧,有人已经回答了,如果它有效,你可以接受:)

标签: html django ajax


【解决方案1】:

您可以在 html 中创建一个变量:

<script>
var loadUrl = '{% url "myProject:load" %}';
</script>

然后在你的js文件中使用:

$.ajax({
    type: 'GET',
    url: loadUrl,
    data: {val: document.getElementById('val').value, sections: secCols},
    success:function(json){},
    error : function(xhr,errmsg,err) {
        alert("ajax error: load")
    } 
...

只要确保你的 js 脚本被包含在之后 loadUrl 已被定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    相关资源
    最近更新 更多