Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 咖啡脚本与Jquery Post的承诺_Javascript_Jquery_Ember.js_Promise - Fatal编程技术网

Javascript 咖啡脚本与Jquery Post的承诺

Javascript 咖啡脚本与Jquery Post的承诺,javascript,jquery,ember.js,promise,Javascript,Jquery,Ember.js,Promise,我有一个emberjs控制器负责向我的服务器发送用户注册表。这在大多数情况下都很好,但我正试图利用承诺,这样我就可以做一些错误检查、重定向等 sendRegistration: () -> $.post('/api/v1/users', user: email: @email, password: @password, password_confirmation: @passwordConfirmation ).then (resp

我有一个emberjs控制器负责向我的服务器发送用户注册表。这在大多数情况下都很好,但我正试图利用承诺,这样我就可以做一些错误检查、重定向等

sendRegistration: () ->
  $.post('/api/v1/users', 
    user:
      email: @email,
      password: @password,
      password_confirmation: @passwordConfirmation
    ).then (response) ->
      alert('Hi!')

这或多或少是正确的,因为post被发送到服务器,服务器用适当的状态代码进行响应,但随后不会执行,可能是因为返回了post的结果。我的咖啡脚本有什么遗漏吗?

只需使用
.post
回调:

sendRegistration: () ->
  $.post('/api/v1/users', 
    user:
      email: @email,
      password: @password,
      password_confirmation: @passwordConfirmation
    , (response) ->
      alert('Hi!')
    );

我想,要使用jQuery的延迟对象,您应该像这样定义post请求:

sendRegistration: () ->
  $.post('/api/v1/users', 
    user: '',
    email: @email,
    password: @password,
    password_confirmation: @passwordConfirmation
  )
  .done (response) ->
    alert('Hi!')
  .fail (jqHXR, textStatus) ->
    alert('error')
秘书处的说明:

从jquery1.5开始,fail和done以及从jquery1.6开始的always回调挂钩都是先进先出的托管队列,允许每个挂钩有多个回调。看


希望有帮助。

尝试添加错误处理程序。其中一个肯定会被执行。顺便说一句,您应该向回调中添加
返回响应
,否则该方法将返回
未定义
的承诺,您可以使用它检查coffeescript Syntax或将javascript转换为coffeescript。相同的结果。反应回来了,警觉再也没有了triggers@DVG然后,jQuery并不认为请求/响应是“成功的”。如上所述,添加一个参数(参数与:
函数匹配(jqXHR,status,error)
)。