0

我一直在寻找解决方案,但从未成功。我有一个带有 formdata 的 ajax 调用,用于将图像上传到服务器。代码看起来像

$.ajax({

    type:'POST',

    url:'url',

    data:UPLOAD_DATA,

    processData:false,

    contentType:false,

    cache:false,

    timeout:10000,

    mimeType:'multipart/form-data',

    dataType:'json',

    success:function(data){

        if(data.success){

            alert(data.success);

        }else if(data.redirect){

        window.location.redirect=data.redirect;

        }else{

            alert(JSON.stringify(data));

        }

    }

});

虽然发送控制台仍然显示“挂起”。此代码适用于除 ie10 以外的所有浏览器

请帮我..

4

2 回答 2

1

以前的 IE 版本(8 和以前的版本)不接受对多部分表单的 ajax 提交的 JSON 响应。因此导致永远不会进入成功回调,并且在某些情况下建议用户将 JSON 响应下载为文本文件。

我想IE10没有犯同样的错误。如果是这样,您可能会考虑将 JSON 内容作为文本返回,将请求数据类型设置为文本,并在成功回调中将文本响应解析回 JSON 客户端。

然而,在寻找头痛之前,请看一下jQuery Form 插件,它可以处理表单的 ajax 提交(无论是否多部分),并提供像有用的 uploadProgress 一样的回调。

于 2013-04-20T11:10:00.630 回答
0

对不起,这是一个愚蠢的错误。我认为 url 作为服务器中的相对路径在 Internet Explorer 中不支持,通过提供完整的 https://" ..." 路径解决了这个问题。

于 2013-04-20T11:36:19.423 回答