异步Ajax调用无法在chrome中工作

时间:2014-02-25 12:03:01

标签: jquery ajax google-chrome asynchronous progress

我在aspx页面中有一个表单,此表单接受文件输入并将其发布到viddler服务器。

当文件被发布到viddler服务器时,在backgorund中我对代码隐藏页面上的webmethod进行ajax调用,这个webmethod调用viddler服务器并返回该特定上载的上传进度。

这些Ajax调用在firefox中运行良好,但在chrome中不起作用,它们甚至没有出现在chrome网络面板中,并且这些函数(成功,错误或完成)都没有被触发。

我在这里遗漏了什么吗?

这是我的ajax电话:

    function checkProgress() {
        tokenValue = document.getElementById("uploadtoken").value;
        var y = "{ token: 'token' }";

        var jsonText = JSON.stringify({ token: tokenValue });

      $.ajax({
             type: 'POST',
             url: "video_viddlerUpload.aspx/CheckProgress",
             data: jsonText,
             contentType: 'application/json',
         dataType: 'json',
         cache: false,
         async: true,
         success: function(json) {

                var uploadProgress;
                uploadProgress = eval('(' + json.d + ')');


                   },
                 error: function (xmlHttpRequest, textStatus, errorThrown) {


             alert('There was an error uploading your file. Please try  again.');
          },
                complete:function () {
                    alert('complete');
                  }
    }); 

    } 

请帮帮我。我会非常乐于助人。

1 个答案:

答案 0 :(得分:0)

猜测问题出在cache:falsejQuery Doc说 - “将缓存设置为false只能在HEADGET请求中正常运行。通过将“_={timestamp}”附加到GET参数来工作。其他类型的请求不需要该参数,但IE8中POST的{​​{1}}除外已被URL请求。“你正在做GET请求。