首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scalajs-react : Ajax GET与DELETE的意外差异

scalajs-react : Ajax GET与DELETE的意外差异
EN

Stack Overflow用户
提问于 2021-10-10 08:23:55
回答 1查看 48关注 0票数 1

对于scalajs-react中的GET和DELETE用例,我有以下Ajax代码。

删除:

代码语言:javascript
复制
val ajax = Ajax("DELETE", "http://localhost:8081/delete/"+id)
      .setRequestContentTypeJsonUtf8
      .send("")
      .onComplete { xhr =>
        xhr.status match {
          case 200 => {
              println("Success")
              ....more code
            )
          }
          case _   => {
             println("Status is"+xhr.status)
             Callback.log(xhr.responseText)
           }
        }
      }

    ajax.asCallback

...GET:

代码语言:javascript
复制
val ajax = Ajax("GET", "http://localhost:8081/fetch/"+id)
      .setRequestContentTypeJson
      .send("")
      .onComplete { xhr =>
        xhr.status match {
          case 200 => {
            println("Success")
            ....more code
          }
          case _   => {
             println("Status is"+xhr.status)
             Callback.log(xhr.responseText)
          }
        }
      }
    ajax.asCallback

虽然GET可以在请求完成时调用onComplete中的代码,但对于DELETE,情况并非如此。For DELETE onComplete代码永远不会在请求完成时调用,即使在服务器端delete操作成功。

为什么会有这种行为上的差异?

EN

回答 1

Stack Overflow用户

发布于 2021-10-11 19:43:47

ajax.asCallback的类型为Callback,应该通过调用.runNow()来执行。我相信,您的GET查询工作得很好,因为在代码下面的某个地方,您可以为它执行此.runNow(),但不能为您的DELETE查询执行此操作。

下面是你的两个例子都运行得很好:

https://scastie.scala-lang.org/mikla/GEcLg2OJSLWhjbcagaxZ9g/10 (检查浏览器控制台输出)

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

https://stackoverflow.com/questions/69513517

复制
相关文章

相似问题

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