我在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');
}
});
}
请帮帮我。我会非常乐于助人。
答案 0 :(得分:0)
猜测问题出在cache:false
,jQuery Doc说 - “将缓存设置为false
只能在HEAD
和GET
请求中正常运行。通过将“_={timestamp}
”附加到GET
参数来工作。其他类型的请求不需要该参数,但IE8中POST
的{{1}}除外已被URL
请求。“你正在做GET
请求。