【问题标题】:Adding a condition for success or error using jQuery ajax + Wordpress使用 jQuery ajax + Wordpress 添加成功或错误条件
【发布时间】:2011-10-21 03:42:51
【问题描述】:

当使用 Wordpress “nonce”系统对 AJAX 请求进行身份验证时,如果身份验证失败,则返回“-1”响应。而不是在每个 jQuery.ajax 成功函数中做这样的事情:

success: function(msg){
    if (msg == '-1')
        console.debug('error')
    else {
        // ...
    }
}

是否有可能以某种方式增强 jQuery 并为我的应用程序添加一个条件,即当返回的消息为“-1”时触发 error: 而不是 success:?显然比一堆相同的 if 语句要干净得多。

我意识到正常的响应是让控制器返回一个 4xx 标头,但宁愿不让 Wordpress 插件更改 ajax 处理程序的默认行为,并可能弄乱其他 Wordpress 插件。

谢谢!

【问题讨论】:

  • 不确定你在这里问什么......你希望 jQuery Ajax 捕捉错误状态......只有在响应代码不是 200 时才能做到......但你不想要将代码更改为 200?

标签: php jquery wordpress


【解决方案1】:

还有错误回调

http://api.jquery.com/jQuery.ajax/

例子

$.ajax({
  url: 'http://somewhere.com/index.html'
  success: function(data, textStatus, jqXHR) {
    //do stuff
  },
  error: function(jqXHR, textStatus, errorThrown) {
    //do stuff
  }
});

【讨论】:

  • 但是如果响应只是 '-1' 和 200 OK 状态,成功:被触发而不是错误:(这是 jQuery.ajax 函数的设计方式,但想知道是否有一个干净的为每次成功添加“错误”的附加条件而不是相同的条件的方法:处理程序...)
  • 没有办法。这就是我在上一条评论中试图很好地表达的意思......你试图做的事情很糟糕。调用成功,返回码是-1。你必须修改 jQuery 来破坏它,这样你才能使你的场景工作。
  • 我并不是建议修改核心 jQuery 代码,我只是想避免在所有单独的 jQuery.ajax() 调用中检查 -1 的重复 if 语句。我也不想通过返回非 200 状态来修改 Wordpress 未通过身份验证检查的默认行为。感谢您确认不修改核心jQuery代码就无法完成!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2011-11-24
  • 1970-01-01
  • 2014-03-06
  • 1970-01-01
  • 2018-11-18
  • 2014-07-31
相关资源
最近更新 更多