0

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

我有一个变量“id”:

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

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

这是我的发帖请求:

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

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

PS:这个帖子请求转到我尝试实现它的完全相同的 url。我不知道是否有比再次指定整个 url 更简单的方法。

4

3 回答 3

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

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

如果你不得不做一些"/mysite/xxx/ID/yyy/"你可以做的事情"/mysite/xxx/"+id+"/yyy/"

于 2012-10-25T15:54:19.463 回答
1

为什么不这样做呢?

$.post(window.location.pathname, {
    name: "test"
});
于 2012-10-25T15:58:39.973 回答
0

如果您在当前页面上发帖,您可以执行以下任一操作:

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

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

如果您在另一个页面上发布,您可以在您的 url 中使用令牌并将其作为变量传递给您的模块:

<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.onReady()提前发布并且需要等待 Django.js 准备好时才需要包装。我是一个真实的案例,你只需要做

$.post(Django.url('my-url', 'param'), {
    name: "test"
});
于 2012-11-02T17:15:08.720 回答