加载gif在IE&铬

时间:2014-07-25 06:45:03

标签: javascript jquery ajax

我一直在寻找并找到了一些关于这个问题的类似问题,但事情对我来说根本不起作用。

这是我的功能:

function ajaxRequest(url, type, datatype, contenttype, data, displayLoadingImg){
 var result="";
 displayLoadingImg = (typeof displayLoadingImg === "undefined") ? 0 : displayLoadingImg;
 if(displayLoadingImg == 1){
    $("#loadingImgAging").css("display","block");
 }
 $.ajax({
    url:url,
    type:type,
    dataType:datatype,
    contentType: contenttype,
    data : JSON.stringify(data),
    success:function(res){
        result = res;
        if(displayLoadingImg == 1){
            $("#loadingImgAging").css("display","none");
        }
    },
    error:function(res){
        result="";
    },
    async : false
 });
 return result;
}

我如何称呼它:

setTimeout(ajaxRequest(url,"GET","json","application/json",0,1), 500);

我尝试使用beforeSend(),但它既不起作用。

注意:如果我删除async : false或将其放到true,我的浏览器控制台中会收到错误Cross-Origin Request Blocked....

3 个答案:

答案 0 :(得分:0)

我的猜测是你不能用本地文件做一个ajax请求。有办法做到这一点,但我更喜欢这两种方法

  • 创建一个简单的服务器

我通常使用python来创建一个简单的服务器。在终端/控制台中键入:" python -m SimpleHTTPServer 9081" (或您想要的任何端口号)。然后,只需打开指向您指定端口的本地主机。

  • 在--allow-file-access-from-files模式下打开chrome

或在Windows中使用以下代码创建批处理文件。必须在配置完成之前重新启动Chrome。

    start "chrome" "C:\Program Files (x86)\Google\Chrome\Application\chrome" --allow-file-        access-from-files
    exit

答案 1 :(得分:0)

我假设您正在对另一个域文件进行AJAX调用,您必须使用JSONP作为您的dataType。这样做你就不必使async = false。

答案 2 :(得分:0)

试试这个: 在你执行ajax调用set display to block之后,在ajax调用之后(成功或错误无关紧要) - 就在你返回之前 - 将display设置为none。你不需要displayLoadingImg和代码来处理它。还是我想念ssomething?