IE8 使用 jquery form plugin 进行上传图片 取不到返回值

项目中使用 formData 来进行上传图片的操作。 但是 formData 只能在 IE9 之上工作, IE8 是不被支持的。
找了解决的方式, 使用 jquery-form-plugin 插件来通过 <iframe> 的方式来进行上传图片。

但是使用过程中, 后台 java 程序有了响应, 并且返回了 <textarea>{fileUrl: xxx.com}</textarea> 这种格式的值。 后台的 content-type 也更改成了 text/html

现在的问题是: success 回调函数中的返回值有问题。 它总是返回当前页面内而不是 iframe 当中的 <textarea> 的值, 所以总是为空。 而且, <iframe> 中也不包含后台传过来的返回值。

各位大侠 这个地方是哪里出了问题。。 还需要设置一些其他的地方吗。。。

$('#form').ajaxSubmit({
    url: url,
    type: 'POST',
    dataType: 'text',
    success: function (response, status, xhr) {
        console.log(223);
        console.log(xhr);
    },
    error: function () {
        console.log(333);
    }
});

补充一下, 发现自动生成的 <iframe> 是没有 name 属性。导致 <iframe> 中内容为空。
如果指定带 name<iframe> 里面确实会将返回 <textarea> 加入到 <iframe> 但是,只有一瞬的时间然后就被清掉, <iframe> 里又什么都没有了。。。。。

阅读 3.2k
2 个回答
新手上路,请多包涵

我遇到了类似问题,返回值为当前页的html。参考https://github.com/jquery-for...,让后端在返回值的response中将X-Frame-Options设为sameorigin,解决了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进