用method = POST定义的jQuery UI对话框表单提交如何变成GET

时间:2012-03-01 03:34:55

标签: jquery-ui jquery jquery-ui-dialog

我可以使用一些帮助来更好地理解jQuery和jQuery UI对话框。

我正在使用jQuery v1.8.18 UI Dialog和jQuery v1.7.1来加载包含表单的html页面。表单本身是由Django模板生成的。填写表单并单击“提交”后,我查看了Django服务器端的HTTP请求。服务器将其视为具有空GET和POST词典的GET类型的ajax请求。

预期结果将是一个包含实际提交数据的POST。有人可以帮我理解UI Dialog如何将POST请求更改为GET吗?我正在使用Firebug,但需要一些调试思路。感谢。

这就是我创建UI对话框的方式:

<script>
        $(document).ready(function() {
          var $dialog = $('<div></div>').load('/friend-request/').dialog({autoOpen:false, title:'Friend Request', modal:true});
         $('#friend-request').click(function() {
            $dialog.dialog('open');
                // prevent the default action, e.g., following a link
                return false;});

        });
</script>

元素#frieder-request只是一个HTML锚点。我的表单很好地加载到对话框中。这是生成的HTML表单代码。

<form id="id-friendreq" method="post">
    <div style="display:none"><input type="hidden" value="12a94012df543b050d69f46f0012345" name="csrfmiddlewaretoken"></div>
    <div class="ctrlHolder" id="div_id_to_user">
        <label for="id_to_user">
            To user<span class="asteriskField">*</span>
        </label>
        <input type="text" maxlength="15" name="to_user" id="id_to_user">
    </div>
    <div class="ctrlHolder" id="div_id_message">
        <label for="id_message">
            Message<span class="asteriskField">*</span>
        </label>
        <textarea class="textarea" cols="40" id="id_message" name="message">Hi, please add me as your friend.</textarea>
    </div>
<div class="buttonHolder">
       <input type="submit" id="submit-id-submit" class="submit submitButton button white" value="Submit" name="submit">
</div>
</form>

2 个答案:

答案 0 :(得分:0)

仅当您提交一些数据时才使用post方法。

$(el).load(url,data,success)

如果您不提供任何数据,则它相当于空白获取查询。即使在服务器端,如果您不发送任何数据,服务器也无法知道您是发帖还是获取请求。老实说,它只是关于数据,你也可以用get查询发送帖子数据

如果必须明确使用POST请求,请使用:

$.post(url,{},function(data){$('<div></div>').html(data)});

答案 1 :(得分:0)

如果您没有将ajax选项type设置为“POST”或使用$ .post()等便捷方法,则默认为“GET”

http://api.jquery.com/jQuery.ajax/