我有一个测试页面使用Ajax向服务器发出http'删除'请求。以下JS代码在IE7中按预期工作,但它在Firefox中不起作用(除非我使ajax调用异步)。
在Firefox中,除非async为false,否则将触发错误回调,状态为0.
相关代码如下: -
<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>
由于 Ĵ
答案 0 :(得分:2)
Firefox没有为同步请求调用onreadystatechange,因此jQuery可能无法调用您的自定义回调。否则,制作同步请求通常是个坏主意。