發生此錯誤是因爲它是在Drupal中處理AJAX錯誤的標準方法。如果您提交表單,而AJAX請求正在處理,您將收到錯誤。
這個錯誤實際上是Drupal和Drupal的預期目的是通過Drupal.ajax.prototype.error = function (response, uri)
結合Drupal.ajaxError = function (xmlhttp, uri)
在Drupal 7的misc/drupal.js
文件中引發此錯誤。
請注意,這是比問題更多的UX問題。
上有用於固定它的Drupal 8
爲Drupal 7關於Drupal alerts "An AJAX HTTP request terminated abnormally" during normal site operation, confusing site visitors/editors Drupal站點懸而未決的問題,你可以嘗試應用以下核心補丁:D7-fix_autocomplete_terminated_error-1232416-179-do-not-test.patch出外:
--- a/misc/ajax.js
+++ b/misc/ajax.js
@@ -448,7 +448,10 @@ Drupal.ajax.prototype.getEffect = function (response) {
* Handler for the form redirection error.
*/
Drupal.ajax.prototype.error = function (response, uri) {
- alert(Drupal.ajaxError(response, uri));
+ // Fix for autocomplete terminated error.
+ if (response.status != 0) {
+ alert(Drupal.ajaxError(response, uri));
+ }
// Remove the progress element.
if (this.progress.element) {
$(this.progress.element).remove();
diff --git a/misc/autocomplete.js b/misc/autocomplete.js
index 8f7ac60..980c1ca 100644
--- a/misc/autocomplete.js
+++ b/misc/autocomplete.js
@@ -306,7 +306,10 @@ Drupal.ACDB.prototype.search = function (searchString) {
}
},
error: function (xmlhttp) {
- alert(Drupal.ajaxError(xmlhttp, db.uri));
+ // Fix for autocomplete terminated error.
+ if (xmlhttp.status != 0) {
+ alert(Drupal.ajaxError(xmlhttp, db.uri));
+ }
}
});
}, this.delay);
這是因爲ajax請求沒有完成,並且用戶請求了新的頁面! –