Javascript jQuery不适用于IE11,但适用于Chrome

Javascript jQuery不适用于IE11,但适用于Chrome,javascript,jquery,ajax,google-chrome,Javascript,Jquery,Ajax,Google Chrome,我对jQuery有问题。当我在Chrome中上传图像时,它成功地执行了AJAX,并且我能够用响应数据更新页面。但在IE11和Firefox中,情况并非如此。守则: $(".newfoto").on('submit', (function(e) { $("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p

我对jQuery有问题。当我在Chrome中上传图像时,它成功地执行了AJAX,并且我能够用响应数据更新页面。但在IE11和Firefox中,情况并非如此。守则:

$(".newfoto").on('submit', (function(e) {
    $("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p>');
    e.preventDefault();
    $.ajax({
        url: "dataok.php?act=foto",
        type: "POST",
        data: new FormData(this),
        contentType: false,
        cache: false,
        processData: false,
        success: function(data) {
            $("#mailresult").html(data);
            setTimeout(function() {
                $("#mailresult").empty();
            }, 2000);
            var imgTag = '<img src="image.php?imgid=' + escape($('.myphoto').attr('id')) + '" />';
            $('.myphoto').html(imgTag);
        },

        error: function() {}

    });
}));
$(“.newfoto”)。关于('submit',(函数(e){
$(“#mailresult”).html(“请稍等……

”); e、 预防默认值(); $.ajax({ url:“dataok.php?act=foto”, 类型:“POST”, 数据:新表单数据(本), contentType:false, cache:false, processData:false, 成功:功能(数据){ $(“#mailresult”).html(数据); setTimeout(函数(){ $(“#mailresult”).empty(); }, 2000); var imgTag=“”; $('.myphoto').html(imgTag); }, 错误:函数(){} }); }));
防止表单提交和重新加载页面的正确方法是使用
返回false。这也将替换
e.preventDefault()在您的代码中

此外,并非所有浏览器都支持
FormData
。看见您可能需要检测并解决此问题

$(".newfoto").on('submit', function(e) {
    $("#mailresult").html('<img src="themes/standart/iconss/spin1.gif" alt="loading..." /><p>Please, wait...</p>');
    $.ajax({
        url: "dataok.php?act=foto",
        type: "POST",
        data: (typeof FormData === 'function') ? new FormData(this) : $(this).serialize(),
        contentType: false,
        cache: false,
        processData: false,
        success: function(data) {
            // success
        },
        error: function(jqXHR, status, error) {
            console.log(error);
        }
    });
    return false;
});
$(“.newfoto”)。关于('submit',函数(e){
$(“#mailresult”).html(“请稍等……

”); $.ajax({ url:“dataok.php?act=foto”, 类型:“POST”, 数据:(typeof FormData==='function')?新的FormData(this):$(this).serialize(), contentType:false, cache:false, processData:false, 成功:功能(数据){ //成功 }, 错误:函数(jqXHR、状态、错误){ console.log(错误); } }); 返回false; });
请适当设置代码格式,使其可读。您需要适当的缩进和删除双间距。@jfriend00哪个双间距?我不明白。很抱歉,您问题中的代码几乎每行代码之间都有一个空行。@jfriend00我编辑了代码。你是说这个吗?是的,删除了所有多余的空行。正如我在第一篇评论中所说,请添加适当的缩进。如果你不知道我的意思,那么把你的代码粘贴到这里:然后按下美化按钮$('.myphoto').html(imgTag);//问题就在这些方面。也许我可以改变它,但如何改变呢?