1
$.ajax({
   url: '../api/notifications/deleteNotification?userId=' + userId + '&notificationId=' + notificationId,
   type: 'DELETE',
   success: function()
   {
       CreateNotificationTree(userId);
       alert('Delete successful.');
   },
   failure: function()
   {
       alert('Delete failed.');
   }
});

上記CreateNotificationTree(userId);の ajax 呼び出しの成功関数内にある関数が発火します。ただし、アラートは後で発生しません。理由を知っている人はいますか?複数のブラウザも使用しようとしました。

編集-AJAX呼び出しの実行時にこのエラーが発生していることがわかりました:

Uncaught TypeError: Cannot read property 'uid' of undefined kendo.web.min.js:23
(anonymous function) kendo.web.min.js:23
p.extend.each jquery.min.js:2
p.fn.p.each jquery.min.js:2
g.extend._attachUids kendo.web.min.js:23
g.extend.init kendo.web.min.js:22
(anonymous function) kendo.web.min.js:9
p.extend.each jquery.min.js:2
p.fn.p.each jquery.min.js:2
$.fn.(anonymous function) kendo.web.min.js:9
CreateNotificationTree NotificationsTreeView.js:17
(anonymous function) NotificationsTreeView.js:60
k jquery.min.js:2
l.fireWith jquery.min.js:2
y jquery.min.js:2
d
4

1 に答える 1

5

エラーをコンソールに記録します。

ajax がメソッドをjQuery識別しないため、failureメソッドが失敗した場合、アラートは表示されません。

コールバックを使用errorしてエラーをログに記録します。

また、console.log代わりにalertwhich を使用すると、実行の流れが煩わしく、停止します

failure: function(){
   alert('Delete failed.');
}

察するに

error: function(){
   alert('Delete failed.');
}

そして、バージョンの時点で非推奨になっているように、コールバックの代わりにdoneandを使用します。failsuccesserror1.8

$.ajax({
    url: '../api/notifications/deleteNotification?userId=' 
               + userId + '&notificationId=' + notificationId,
    type: 'DELETE'
}).done(function () {
    CreateNotificationTree(userId);
    console.log('Delete successful.');
}).fail(function (jqXHR, status, error) {
    console.log("Error : " + error);
});

argumentsコールバックに渡される を使用すると、エラーを特定できます。

于 2013-08-15T18:36:44.603 に答える