首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jquery和Knockout更新后,jQuery `$.post` `fail`失败

jquery和Knockout更新后,jQuery `$.post` `fail`失败
EN

Stack Overflow用户
提问于 2017-08-30 13:21:35
回答 1查看 52关注 0票数 0

在使用$.post更新此apiPost方法之前,成功地处理了fail (带有401 Status CodeHTTPResponseMessage从api调用中返回) (failurealways在apiPost方法调用代码中未定义)。

代码语言:javascript
运行
复制
  self.modelIsValid = ko.observable(true);
  self.modelErrors = ko.observableArray();

  self.apiPost = function (uri, data, success, failure, always) {
        self.isLoading(true);
        self.modelIsValid(true);
        $.post(rootPath + uri, data)
            .done(success)
            .fail(function (result) {
                if (failure == null) {
                    if (result.status != 400)
                        self.modelErrors([result.status + ':' +
                          result.statusText + ' - ' + result.responseText]);
                    else
                        self.modelErrors(JSON.parse(result.responseText));
                  self.modelIsValid(false);
                }
                else
                    failure(result);
            })
            .always(function () {
                if (always == null)
                    self.isLoading(false);
                else
                    always();
            });
    };

单步执行代码时,命中fail代码块,然后运行数十行jquery、javascript、knockout和VM扩展代码,然后返回到fail代码块和内部if,更新modelErrors数组,然后将modelIsValid设置为false。

在更新之后,命中fail代码块,然后运行其他代码,但它永远不会返回到fail代码块。数组永远不会更新,modelIsValid也永远不会设置为false ( ValidationError局部视图是由modelIsValid设置为false触发的)。

原始版本: jquery -1.9.1和knockout-2.2.1。

更新版本: jquery -3.1.1和knockout-3.4.2。

运行在Widnows7旗舰版,VS2015和最新的Chrome上。在开发人员工具中调试javascript。

jquery或knockout中是否有破坏fail的更改。我该如何重写来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2018-02-07 02:48:48

事实证明,这与jQuery或Knockout无关。我在中使用更新的jQuery和Knockout的项目使用的是Identity 2.0,它结合了OWIN,它重定向到401上的登录页面。

请参阅Unauthorised webapi call returning login page rather than 401

我使用了丛乐的答案,发布于6/11/15。WebAPI调用现在返回401,没有重定向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45952464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档