Ajax可自定义错误回调函数

Ajax Customizable Error Callback Function

本文关键字:回调 函数 错误 自定义 Ajax      更新时间:2023-09-26

所以这个函数非常有效。我还有六个按钮,不希望我的代码有大量重复代码。对于自定义部分,我希望每个回调都是不同的,例如,如果用户不是管理员,则附加的文本"Please Log In"是不同的。我该如何为每个按钮自定义?非常感谢。

  error: (xhr, ajaxOptions, thrownError) -> 
    console.dir arguments
    console.log("*| Status ", xhr.status)
    console.log("*| Error", thrownError)
    console.log("*| Ajax", ajaxOptions)
    if (not username? or not password?)
      $('#data-text').empty()   
      $('#data-text').append ("""<h1>Please Log In</h1>""")
      $('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0);
      $('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0);
      $('#header_user').css "background-color": "#d34242"
      $('#header_password').css "background-color": "#d34242"
      $('#data-text').css "background-color": "#d38642"
    else
      $('#data-text').empty()   
      $('#data-text').append ("""<h1>Failed Log In</h1>""")
      $('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0);
      $('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0);
      $('#header_user').css "background-color": "#d34242"
      $('#header_password').css "background-color": "#d34242"
      $('#data-text').css "background-color": "#d38642"

请将代码保存在CoffeeScript 中

在CoffeeScript中,您可以在函数中定义函数。不要让任何人告诉你CoffeeScript或JavaScript是一种函数式语言。函数是一流的对象,对象可以封装其他对象。

error: (xhr, ajaxOptions, thrownError) -> 
  console.dir(arguments)
  console.log("*| Status ", xhr.status)
  console.log("*| Error", thrownError)
  console.log("*| Ajax", ajaxOptions)
  needsAGoodName = (msg) ->
    $('#data-text').empty()   
    $('#data-text').append(msg)
    $('#input_username').fadeTo(100, 0.1).fadeTo(200, 1.0)
    $('#input_password').fadeTo(100, 0.1).fadeTo(200, 1.0)
    $('#header_user').css("background-color": "#d34242")
    $('#header_password').css("background-color": "#d34242")
    $('#data-text').css("background-color": "#d38642")
  if not username? or not password?
    needsAGoodName("""<h1>Please Log In</h1>""")
  else
    needsAGoodName("""<h1>Failed Log In</h1>""")

我删除了if周围的括号,并在函数调用周围添加了它们以进行样式设置。无论哪种方式都有效。