Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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 如何从Rails 5.1中的事件ajax:error的响应中获取数据_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript 如何从Rails 5.1中的事件ajax:error的响应中获取数据

Javascript 如何从Rails 5.1中的事件ajax:error的响应中获取数据,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我正在轨道上建造一个模板。我想通过ajax提交它,所以我设置了remote:true <%= form_for @post, html: { multipart: true }, remote: true do |f| %> ... <%= end %> 在形式上 $('#new_post').on('ajax:success', function(data) { console.log(data); }).on('ajax:error', funct

我正在轨道上建造一个模板。我想通过ajax提交它,所以我设置了
remote:true

<%= form_for @post, html: { multipart: true }, remote: true  do |f| %>
    ...
<%= end %>
在形式上

$('#new_post').on('ajax:success', function(data) {
    console.log(data);
}).on('ajax:error', function(evt, xhr, status, error) {
    console.log(xhr);
});
但在“ajax:error”事件中,我无法解析以获取有关post验证错误的数据。所有参数“xhr”、“status”、“error”都等于未定义


如何解析“ajax:error”中的响应以获取有关验证错误的数据?

Rails 5.1引入了
Rails ujs
,它更改了这些事件处理程序的参数。以下方面应起作用:

// ...
.on('ajax:error', function(event) {
    var detail = event.detail;
    var data = detail[0], status = detail[1],  xhr = detail[2];
    // ...
});

来源:

这在5.2版中仍然有效吗?当我在ajax:success和ajax:error回调中查看Chrome DevTools中的event.detail时,我感到“未定义”。但是,我可以访问xhr、数据和状态,结果我仍然使用jquery_ujs而不是rails ujs。现在没事了。
// ...
.on('ajax:error', function(event) {
    var detail = event.detail;
    var data = detail[0], status = detail[1],  xhr = detail[2];
    // ...
});