Javascript 针对';删除';在Firefox中不触发
我有一个测试页面,可以使用Ajax向服务器发出http“删除”请求。以下JS代码在IE7中可以正常工作,但在Firefox中无法正常工作(除非我将ajax调用设置为异步) 在Firefox中,除非async为false,否则会触发状态为0的错误回调Javascript 针对';删除';在Firefox中不触发,javascript,jquery,ajax,firefox,callback,Javascript,Jquery,Ajax,Firefox,Callback,我有一个测试页面,可以使用Ajax向服务器发出http“删除”请求。以下JS代码在IE7中可以正常工作,但在Firefox中无法正常工作(除非我将ajax调用设置为异步) 在Firefox中,除非async为false,否则会触发状态为0的错误回调 如果调用是同步的,有人能帮助解释为什么这在Firefox中显然有效吗 在本页的上下文中,同步调用并不是一件坏事,但是我已经读到,应该避免这种情况,因为这将有效地冻结浏览器窗口,直到响应返回。有没有其他人可以建议的解决方案 相关代码如下:- <s
<script src="${url.context}/scripts/jquery-1.3.2.min.js"></script>
<SCRIPT LANGUAGE="JavaScript">
jQuery.noConflict();
function deleteImage(nodeParam) {
alert('hello');
var options = {
type: 'DELETE',
async: false,
url: '${url.context}/service/api/asset/delete?alf_ticket=${session.ticket}'+'&format=text'+'&'+nodeParam,
dataType: 'json',
success: function(data, textStatus) {
jQuery('#result-div').html('');
if (data['ok'] == true) {
//jQuery('#result-div').html('Delete successful using parameter - ' + nodeParam);
alert("Delete successful" );
} else {
alert( "Response 'ok' set to 'false' on success callback!" );
jQuery('#result-div').html('Delete failed!');
}
},
error: function (request, textStatus, errorThrown) {
//jQuery('#result-div').html('Delete failed!');
alert("Delete Failed");
alert(request.status);
//alert("Error callback triggered, request failed with status: " + request.status + ' ' + request.responseText);
}
};
jQuery.ajax(options);
}
// End -->
</script>
jQuery.noConflict();
函数deleteImage(节点内存){
警惕(“你好”);
变量选项={
键入:“删除”,
async:false,
url:'${url.context}/service/api/asset/delete?alf_ticket=${session.ticket}'+'&format=text'+'&'+nodeParam,
数据类型:“json”,
成功:功能(数据、文本状态){
jQuery('#result div').html('');
如果(数据['ok']==true){
//jQuery('#result div').html('Delete successfully using parameter-'+nodeParam);
警报(“删除成功”);
}否则{
警报(“成功回调时响应“ok”设置为“false!”);
jQuery('#result div').html('Delete failed!');
}
},
错误:函数(请求、文本状态、错误抛出){
//jQuery('#result div').html('Delete failed!');
警报(“删除失败”);
警报(请求状态);
//警报(“已触发错误回调,请求失败,状态:“+request.status+”+request.responseText”);
}
};
ajax(选项);
}
//结束-->
谢谢
JFirefox不会为同步请求调用onreadystatechange,因此jQuery可能无法调用自定义回调。否则,发出同步请求通常是个坏主意。Afaik没有
delete
类型。使用get或post。我相信支持删除。但并非所有浏览器都支持它。你能澄清一下吗?您的意思是,调用onreadystate更改会禁止启动回调。我注意到,当async=false时,一切都可以工作。