Url Post请求jquery Django

时间:2012-10-25 15:51:21

标签: javascript jquery django

这可能是一个愚蠢的问题,但我尝试用jquery做一个帖子请求,我不知道如何在我的帖子请求中设置我的“url”。

我有一个变量“id”:

var url = window.location.pathname.split('/');
var id = url[3]; 

我希望我的帖子转到/ mysite / xxx /“id”/

这是我的帖子请求:

   $.post("/mysite/xxx/'id'", { 
   name: "test"
   });

我不知道如何在我的网址末尾包含变量“id”。谢谢你的帮助。

P.S:此帖子请求转到我尝试实现它的完全相同的URL。我不知道是否有更简单的方法来做,而不是再次指定整个网址。

3 个答案:

答案 0 :(得分:1)

$.post("/mysite/xxx/"+id, { 
   name: "test"
});

你的问题是“如何连接字符串和变量”。

如果您必须执行"/mysite/xxx/ID/yyy/"之类的操作,则可以执行"/mysite/xxx/"+id+"/yyy/"

答案 1 :(得分:1)

为什么不这样做?

$.post(window.location.pathname, {
    name: "test"
});

答案 2 :(得分:0)

如果您在当前页面上发帖,您可以这样做:

$.post(window.location.pathname, {
    name: "test"
});

$.post('.', {
    name: "test"
});

如果您在其他网页上发帖,您可以在网址中使用代币并将其作为变量传递给您的模块:

<script>
    var url = '{% url my-url "{token}" %}';

    $.post(url.replace('{token}', 'param'), {
        name: "test"
    });
</script>

请注意,令牌应与正则表达式类型匹配才能成功解析(如果参数是使用{token}定义的,则无法使用\d+。)

我对这个解决方案有点不满意,最后我编写了自己的应用程序,用django处理javascript:django.js。有了这个应用程序,我可以这样做:

{% load js %}
{% django_js %}
<script>
    Django.onReady(function() {
        $.post(Django.url('my-url', 'param'), {
            name: "test"
        });
    });
</script>

只有在提前发布并需要等待Django.js准备就绪时才需要Django.onReady()包装。我是一个真实的案例,你只需要做

$.post(Django.url('my-url', 'param'), {
    name: "test"
});