Php 使用jQuery的快速AJAX请求会导致语法错误
我的页面上有一些与几个元素相关联的ajax请求——当用户单击“附加”或“分离”时,它会发送一个ajax请求来启动所述请求 如果用户在收到上一个“click”的AJAX响应之前一个接一个地单击每个项目,那么在第一个“click”响应之后的请求将收到以下错误: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
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
的错误