XmlHttpRequest无法处理按钮单击事件

时间:2016-10-27 07:42:31

标签: javascript coffeescript xmlhttprequest

我在处理点击事件时遇到了XmlHttpRequest的问题:

  • onloaded不会被调用
  • onprogress或onreadystatechange始终获取状态0

工作地点:

  • 如果我在此点击事件之外发送XmlHttpRequest,即在里面: document.addEventListener("DOMContentLoaded",(e) =>.
  • 内部按钮点击事件但同步: XmlHttpRequest.open("POST", url, false)

认为这是一个范围问题,我对这个Request对象进行了引用:

范围实施

  request = new Request(@_callback,"POST")
  document
  .getElementById 'LoginButton'
  .addEventListener("click", @_performLogin);
  _callback : (err, response) ->
    if err then throw err
    console.log(response)
    console.log(response["status"])
    if response["status"] == 200 then alert("Login successful!") else alert("Login Failed")

类方法:

  _performLogin : () ->
    username = document.getElementById('username').value
    password = document.getElementById('password').value
    url = "https://dev.kittyhawk.io/api/login?email=" + username + "&password=" + password
    request._sendRequest(url)

注意:Request只是XmlHttpRequest

的包装器

知道发生了什么事吗?

编辑: 内部请求类 请注意,catch()不会被调用,send()会被执行但我在Chrome中看不到网络请求。在Safari中,我看到请求为红色(没有状态)。此外,这是非常新的,所以请耐心等待。 :)

_sendRequest:(targetUrl) =>
    try
      if targetUrl? then @_url = targetUrl else new Error("Missing parameter: URL")
      @_request.open(@_type,@_url,true)
      @_request.send()
    catch e
      console.log(e)
      alert("Error:" + e)

0 个答案:

没有答案