0

これはばかげた質問かもしれませんが、jquery で投稿リクエストを実行しようとしましたが、投稿リクエストで「url」を設定する方法がわかりません。

変数「id」があります:

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

そして、投稿を /mysite/xxx/"id"/ に移動したいと思います

ここに私の投稿リクエストがあります:

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

URL の末尾に変数「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 に答える