Php 使用jQuery的快速AJAX请求会导致语法错误

Php 使用jQuery的快速AJAX请求会导致语法错误,php,jquery,ajax,syntax-error,Php,Jquery,Ajax,Syntax Error,我的页面上有一些与几个元素相关联的ajax请求——当用户单击“附加”或“分离”时,它会发送一个ajax请求来启动所述请求 如果用户在收到上一个“click”的AJAX响应之前一个接一个地单击每个项目,那么在第一个“click”响应之后的请求将收到以下错误: Uncaught SyntaxError: Unexpected token d 经检查,以下情况下会发生这种情况: Uncaught SyntaxError: Unexpected token d $.ajax.success

我的页面上有一些与几个元素相关联的ajax请求——当用户单击“附加”或“分离”时,它会发送一个ajax请求来启动所述请求

如果用户在收到上一个“click”的AJAX响应之前一个接一个地单击每个项目,那么在第一个“click”响应之后的请求将收到以下错误:

Uncaught SyntaxError: Unexpected token d
经检查,以下情况下会发生这种情况:

Uncaught SyntaxError: Unexpected token d
  $.ajax.success                            addassets.js:217
  f.Callbacks.n                             jquery.js:2
  f.Callbacks.o.fireWith                    jquery.js:2
  w                                         jquery.js:4
  f.support.ajax.f.ajaxTransport.send.d     jquery.js:4
是否有人看到此错误/设法找到解决方法

更新:

我重新运行了代码,它似乎正在取消对所有请求的响应,除了最后一个提交的请求。因此,如果用户单击1、2、3,1和2将收到错误,3的响应将按预期接收

以下是我的ajax代码:

    $.ajax({
        url: '/editor/disconnectattachment',
        cache: false,
        data: datastring,
        type: 'POST',
        success: function( data ) {
            console.log( 'received disconnect' );
            var newData = JSON.parse( data );

            if ( newData.Message.code != 200 ) {

                var newbutton = '<input type="button" value="Detach File" class="classic detach-attachment" docid="' + docid + '" rel="' + relid + '" />';
                $scope.empty().html(newbutton).find('input').uniform();;

            } else {

                var newbutton = '<input type="button" value="Attach File" class="attach-attachment" docid="' + docid + '" rel="' + relid + '" />';
                $scope.empty().html(newbutton).find('input').uniform();;

            }

        }
    });

});
$.ajax({
url:“/editor/disconnectattachment”,
cache:false,
数据:datastring,
键入:“POST”,
成功:功能(数据){
log('received disconnect');
var newData=JSON.parse(数据);
如果(newData.Message.code!=200){
var newbutton='';
$scope.empty().html(newbutton.find('input').uniform();;
}否则{
var newbutton='';
$scope.empty().html(newbutton.find('input').uniform();;
}
}
});
});

如果允许多个异步请求,并且您需要等待所有请求的成功响应,请尝试将它们包装到自动可执行函数中:

    function abc(param1, param2)
    {

(function(param1,param2){
    $.ajax({
            url: '/editor/disconnectattachment',
            cache: false,
            data: datastring,
            type: 'POST',
            success: function( data ) {
                console.log( 'received disconnect' );
                var newData = JSON.parse( data );

                if ( newData.Message.code != 200 ) {

                    var newbutton = '<input type="button" value="Detach File" class="classic detach-attachment" docid="' + docid + '" rel="' + relid + '" />';
                    $scope.empty().html(newbutton).find('input').uniform();;

                } else {

                    var newbutton = '<input type="button" value="Attach File" class="attach-attachment" docid="' + docid + '" rel="' + relid + '" />';
                    $scope.empty().html(newbutton).find('input').uniform();;

                }

            }
        });


    }
}(param1,param2);
函数abc(参数1、参数2)
{
(函数(参数1、参数2){
$.ajax({
url:“/editor/disconnectattachment”,
cache:false,
数据:datastring,
键入:“POST”,
成功:功能(数据){
log('received disconnect');
var newData=JSON.parse(数据);
如果(newData.Message.code!=200){
var newbutton='';
$scope.empty().html(newbutton.find('input').uniform();;
}否则{
var newbutton='';
$scope.empty().html(newbutton.find('input').uniform();;
}
}
});
}
}(参数1,参数2);
上面的代码不是一个解决方案,但至少可以让您接收多个ajax请求调用的多个成功响应

你需要在你有数据的地方使用参数:datastring等等


我希望它能对您有所帮助!

您需要回调,或者在前一个成功的基础上使用下一个ajax这些是用户发起的请求,将它们作为前一个请求的交错回调是相当困难的。您可以发布一些代码以更好地理解ajax代码是在循环中吗?不,它不在循环中。这是一个绑定事件that在用户单击处理程序时执行。我在加载页面时收到一个未定义
param1
的错误