从JS代码制作ajax请求的便携方式

时间:2013-12-16 10:41:44

标签: django jquery

这可能是一个愚蠢的问题,但我找不到明显的回应。

我正在使用(Geo)Django为后端和Leaflet开发一个Web应用程序,用于前端。我的观点是我想从我的JS代码到我的Django后端进行url调用。像这样:

$.ajax({
    type: 'POST',
    url: '<A_URL_HERE>',
    data: {"data":<MY_JSON_DATA>},
    dataType: 'json',
    success: function(responseData, textStatus, jqXHR) {
        console.log("Data saved");

    },
    error: function (responseData, textStatus, errorThrown) {
        console.log("Problem saving the data");
    }
});

我的问题在于网址。我知道cool URIs don't change,但是,例如,如果我想保留不同的dev / test / prod环境而不更改该参数,我应该怎么做?在后端部分,我正在遵循这类问题的良好实践,但我对JS和前端的经验很少。

非常感谢提前

1 个答案:

答案 0 :(得分:3)

两种可能的解决方案:

  1. 使用动态生成的JavaScript,即JavaScript文件不是硬编码的静态文件。相反,它是一个后端用变量填充的模板(特别是URL);
  2. 与上述类似,只是JavaScript是一个硬编码的静态文件,例如,您将URL放在基本HTML(从服务器端的模板生成)中:
  3. <强> base.html文件

    <script>window.urls = { "my_url": "{{ my_url }}" };</script>
    

    <强> my_script.js

    $.ajax({
        url: window.urls.my_url,
        ...
    });
    

    有了这个,您可以根据您的服务器设置生成URL。