gri*_*yvp 2 ajax rest jquery couchdb
一个典型的模式没有使用REST couchDB API是"如果不存在则创建".例如,如果我想创建一个数据库,如果它不存在:
$.ajax({
type: 'PUT',
url: DB + 'mydatabase',
});
Run Code Online (Sandbox Code Playgroud)
作为一个程序员,无论是201 Created和412 Prerequisite failed是成功的,因为我想数据库是在地方,如果它只是创造或者是已经在这里它是完美的罚款和我在一起.但从jQuery视角来看,201是成功而且412是失败 - 所以我需要编写大量代码才能确保数据库到位:
$.ajax({
type: 'PUT',
url: DB + 'mydatabase',
}).fail( function( arg ) {
if( 412 == arg.statusCode ) {
// This is success.
} else {
// This is failure.
}
}).done( function( arg ) {
// This is another success.
});
Run Code Online (Sandbox Code Playgroud)
这有效地使代码在两个地方成功(甚至在两个不同的回调中!).是否有可能以较少的代码减少错误处理,最好是在一个地方处理成功?
或者,您可以使用该statusCode对象将共享事件处理程序绑定到200和412.
$.ajax({
type: 'PUT',
url: DB + 'mydatabase',
statusCode: {
200: myHandler,
412: myHandler
}
});
function myHandler(data, statusText, jqXHR) {
// do something with the data
}
Run Code Online (Sandbox Code Playgroud)
为了完整性,这是我在评论中描述的另一种方式.
$.ajax({
type: 'PUT',
url: DB + 'mydatabase',
complete: function(jqXHR) {
if (jqXHR.status === 200 || jqXHR.status === 412) {
// do something
}
return;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |