我在Internet Explorer上使用jQuery AJAX时遇到了一些麻烦。这是代码片段:
$('#upload-button').live('click', function() {
// Get next upload server
$.get('http://api.site.com/?sub=next_upload_server', function(resp) {
// Set uploadify server setting
resp = $.parseJSON(resp);
$('#file-select').uploadify('settings', 'uploader', 'http://' + resp.server + '.site.com/upload.php');
console.log($('#file-select').uploadify('settings','uploader'));
// Start uploads
$('#file-select').uploadify('upload', '*');
});
// Switch out the form for upload progress
$('#upload-form').animate({opacity: 0}, function() {
$('#progress-container').fadeIn('fast');
});
});
此代码适用于Chrome,Firefox和Safari。但是在Internet Explorer下,它似乎不起作用。如果我在alert("test")
来电之前加上$.get()
行,它就会显示出来。如果我把它放在$.get()
调用的函数中,它就不会。如果我在$.get()
通话之后(在我关闭上传进度表单之前)将其显示,则会显示警报。
这个AJAX调用在Internet Explorer中无效吗?据我所知,它应该。我在Internet Explorer 7到9中测试过它。加载页面或运行此方法时也没有Javascript错误。
谢谢。
编辑:经过更多调试后,如果我直接在IE中转到http://api.site.com/?sub=next_upload_server
,它会提示我下载文件。当我在记事本中打开该文件时,我看到了我期望的AJAX响应。这可能与它有关吗?
答案 0 :(得分:0)
我认为问题可能出在服务器脚本中,尝试发送以下标题:
header("content-type:application/json;charset=utf-8");
答案 1 :(得分:0)
尝试使用$.getJSON()
或$.ajax({ dataType: 'json' ... });