scala.js与scala.js-react。有抓取方法吗?

时间:2017-08-28 13:16:09

标签: ajax scala fetch scala.js

我将scala.jsscala.js-react一起使用。为了发送ajax请求,我写了类似的内容:

def send(e: ReactEventFromInput) = Callback{
  val v = e.currentTarget.value
  val formData = new FormData()
  formData.append("myVar", v)

  val xhr = new XMLHttpRequest
  xhr.onreadystatechange = (e: org.scalajs.dom.Event) => {
    if (xhr.readyState == XMLHttpRequest.DONE) {
      if (xhr.status == 200) {
        println("Sended!")
      } else {
        println("Error!")
      }
    }
  }

  xhr.open("POST", "/my-api-route", true)
  xhr.setRequestHeader("X-Requested-With", "XMLHTTPRequest")
  xhr.send(formData)
}

它有效,但代码非常长。

它是否提供了javascript fetch等提取方法?

P.S。对不起我的英语,这不是我的母语

1 个答案:

答案 0 :(得分:1)

找到Ajax对象:

def send(e: ReactEventFromInput) = Callback{
    val v = e.currentTarget.value
    val formData = new FormData
    formData.append("myVar", v)

    Ajax.post("/my-api-route", formData) map (r =>
      println("Sended!")
    ) onFailure {
      case dom.ext.AjaxException(r) => println("Error:" + r.response)
    }
  }