zoukankan      html  css  js  c++  java
  • Backbone.js 中的Model被Destroy后,不能触发success的一个原因

    下面这段代码中, 当调用destroy时,backbone会通过model中的url,向服务端发起一个HTTP DELETE请求, 以删除后台数据库中的user数据。 成功后,会回调触发绑定到destroy的success()方法。但数据库已经成功删除,也未报任何异常,但前端JS的success始终不能触发。

        User = Backbone.Model.extend({
            initialize: function(user) {
    ... ...
    }, url:"/user/xxx", }); user = new User();
    ... ... user.destroy( success:
    function(model, response) { that.refresh(); }, wait:true )

    我以为只要HTTP请求正确返回,就可以成功触发success。结果最后发现backbone没有自己封装处理返回值,而是靠后端服务返回code代码来直接判断,这个感觉比较坑爹。

    success的触发,必须要是返回值中的code为零才行,其它任何情况均无法触发,这个code可以是json数据中的一个字段,比如:{"code":"0"},也可以直接只是一个字符"0"。

    我的后端代码最初是类似这样的:

        @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
        public String deleteUser(@PathVariable String id) {
    try {
    ... ...
    return "OK"; } finally {
    ... ... } }
    因为返回值“OK”不是0,也不是带code码的json,所以导致JS没有触发success. 
    将返回值改成以下任一一种,均可成功触发“success”
    return "{"code":"0"}"
    或者
    return "0"
    或者
    return 0 (方法定义返回int型)
  • 相关阅读:
    HanLP vs LTP 分词功能测试
    HanLP中文分词Lucene插件
    pyhanlp:hanlp的python接口
    Hanlp自然语言处理工具之词法分析器
    基于结构化感知机的词性标注与命名实体识别框架
    分词工具Hanlp基于感知机的中文分词框架
    Android环境下hanlp汉字转拼音功能的使用介绍
    Javascript JSON语法基础
    mui ajax方法详解
    HBuilder的webview操作
  • 原文地址:https://www.cnblogs.com/chry/p/5893334.html
Copyright © 2011-2022 走看看