我可以使用一些帮助来更好地理解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>
答案 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”