簡體   English   中英

使用JavaScript將URL發送到服務器

[英]Sending a URL to server with JavaScript

我不是一個優秀的程序員,並且需要幫助。

以下javascript代碼應該將格式為/ update / 1/3的url發送到我的django測試服務器以更新項目。 但是,當我嘗試時,我只會在控制台日志中看到/ update /的帖子。

<script type="text/javascript">
    function goTo()
    {
        var url = '/update';
        var quantity = document.forms[0].quantity.value;
        var menuitem_id = document.forms[0].menuitem_id.value;
        window.location = url+'/'+menuitem_id+'/'+quantity;
        return false;
    }
</script>

我究竟做錯了什么?

根據要求,請參見HTML:

<div class="container">
<td class="table">
    <form method="post" action="." onsubmit="return goTo()">
    <div>
    {% csrf_token %}
        {% if item %}
        <label for="quantity">How much {{ item.product.name }} from {{ item.product.restaurant.name }} do you want?</label>
        <input style="height:25px;font-size:12pt;" type="text" name="quantity" value="{{ item.quantity }}" id="quantity" size="2" class="quantity" maxlength="5"/>
        <input type="hidden" name="menuitem_id" value="{{ item.product.id }}" id="menuitem_id"/>
        </td>
        <td>
        {% endif %}
    </div>
    <button class="btn btn-primary" type="submit">Update</button>
    </form>
</td>
</div>

您發布的代碼看起來不錯。 確保“ quantity”和“ menuitem_id”是頁面上第一個表單(forms [0])中輸入的名稱(而不是id)。 例如,很多時候,人們忘記了頁面頂部的搜索欄在技術上是第一種形式。

另外,如果這些輸入是用戶指定的,並且您希望它們始終是數字,則也可以使用以下方法來清除所有不需要的字符:

var quantity = document.forms[0].quantity.value.replace(/[^0-9]/g,'');

..將從輸入中刪除所有非數字字符。 這將防止空格破壞URL路徑,並且(一點點)有助於保護您的用戶免受javascript注入攻擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM