我正在使用Rails 5.2.2,我想在使用Rails UJS时设置超时,以便在请求超时时显示警报消息。
我阅读了使用 JavaScript 的官方指南以及与此问题相关的答案,但该指南没有写任何关于超时的内容,并且答案已经过时。
在我的.html.erb
视图文件中,我正在使用:
<input id="element_dom_id" type="checkbox" data-remote="true" data-url="/a_url" data-params="key=value" data-method="patch">
<script type="text/javascript">
document.getElementById('element_dom_id').addEventListener(
'ajax:success', function(event) {
...
}
);
document.getElementById('element_dom_id').addEventListener(
'ajax:error', function(event) {
...
}
);
...
</script>
试试这个:
$(function() {
// ...
$.rails.ajax = function(options) {
if (!options.timeout) {
options.timeout = 100000;
}
return $.ajax(options);
};
// ...
});
您可以使用 jquery-ujs 中的 $.rails.ajax 属性,以便在未显式传递超时时注入超时。