AJAX在烧瓶中的优雅降解
我正在flask中使用RESTful http方法构建一个应用程序。我有一个页面,上面有两个表单,一个允许用户创建对象一个表单一个按钮,另一个列出现有对象并允许用户删除和修改它们一个表单两个按钮 我已经建立了一个AJAX系统来处理这些表单。根据创建、更新、删除操作的不同,我向服务器发送具有不同标题的请求POST、PUT、delete。在flask方面,我有一个MethodView,其中包含处理这些请求的适当方法 我的问题是没有启用javascript的用户。默认情况下,表单有一个POST操作-但是,我的MethodView被编写为在创建新对象时处理POST,因此它将无法处理整个表单的输入。此外,我的两个表单都将POST作为默认操作,因此现在它们将由相同的函数处理,而不区分它们 在我看来,如何同时支持AJAX和常规表单提交 这是我的更新/删除表单:AJAX在烧瓶中的优雅降解,ajax,rest,flask,Ajax,Rest,Flask,我正在flask中使用RESTful http方法构建一个应用程序。我有一个页面,上面有两个表单,一个允许用户创建对象一个表单一个按钮,另一个列出现有对象并允许用户删除和修改它们一个表单两个按钮 我已经建立了一个AJAX系统来处理这些表单。根据创建、更新、删除操作的不同,我向服务器发送具有不同标题的请求POST、PUT、delete。在flask方面,我有一个MethodView,其中包含处理这些请求的适当方法 我的问题是没有启用javascript的用户。默认情况下,表单有一个POST操作-但
<form method="POST" role="form" id="process-form">
<table>
<tr>
<td>
<input id="process-selection-0" name="process-selection" type="checkbox" value="1">
</td>
<td>
<label for="process-selection-0">
<a href="/projects/1">
aaa
</a>
</label>
</td>
</tr>
</table>
<h3>Selected file actions:</h3>
<button class="btn btn-primary" id="process-process_button" name="action" type="submit" value="0"><span class="glyphicon glyphicon-tasks "></span> Process</button>
<button class="btn btn-danger" id="process-delete_button" name="action" type="submit" value="-1"><span class="glyphicon glyphicon-remove "></span> Delete</button>
</form>
尝试此更新表单。您可以根据需要指定方法属性值。我的更新和删除表单是一个带有两个按钮的表单。我将把它添加到问题中。您是如何使用jqeury.ajax提交表单的???,您可以添加该代码吗?当然,添加到op中。一切看起来都很好,您可以删除表单中的method=POST并立即尝试吗??
$('form#process-form > #process-process_button').click(function (event) {
var formData = $( '#process-form' ).serialize()
console.log("Sending data:")
console.log(formData)
// process the form
$.ajax({
type : 'PUT',
url : '/projects/',
data : formData,
dataType : 'json',
})
.done(function (data) {
console.log(data);
});
event.preventDefault();
});
$('form#process-form > #process-delete_button').click(function (event) {
var formData = $( '#process-form' ).serialize()
console.log("Sending data:")
console.log(formData)
$.ajax({
type : 'DELETE',
url : '/projects/',
data : formData,
dataType : 'json',
})
.done(function (data) {
console.log(data);
});
event.preventDefault();
});