有没有办法在Internet Explorer中执行以下解决方案?(IE7及以上)
link:使用jQuery.ajax发送multipart/formdata
解决方案代码在IE的每个浏览器中都很有用.
我有一个问题,我需要将数据发布为内容类型application/x-www-form-urlencoded.
var inputData = {cId:"444",pageNo:"1",latitude:"49.153236",longitude:"12.040905"};
var data = new FormData();
data.append('data', JSON.stringify(inputData));
this.model.save(data, {
data: data,
processData: false,
cache: false,
contentType: false,
success: function (model, resultData) {
$.get(App.baseUrl + 'templates/all-offers-view.html', function (data) {
template = _.template(data, {
data: resultData
});
that.$el.html(template);
}, 'html');
},
error: function (error) {
console.log("Error");
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
虽然以上在所有其他浏览器中工作正常,但我在IE9中收到以下错误.
SCRIPT5009: 'FormData' is undefined
view.js, line 57 character 9
Run Code Online (Sandbox Code Playgroud)
57号线 var data = new FormData();
我听说FormData()是一个浏览器相关的功能,它与jquery库无关,而在IE中则缺少它.
我使用上述方法的原因是因为我必须以application/x-www-form-urlencoded格式传递数据.
我无法更改服务器端编码(因为它与appstore中的iphone应用程序链接).
我所能做的只是尝试与客户端.
有人有解决方案吗? …
我对jQuery和Ajax函数比较陌生,但过去几天一直在使用Ajax表单.我遇到了文件上传的问题,但是在尝试上传图片时.在寻找资源的同时,我找不到任何有用的东西,因为它们似乎过于复杂,没有任何无意义的额外内容,或者没有任何解释,这无助于我进一步学习.
我编写了这段代码来处理Ajax中的图像上传:
$(function() {
$('.input_photo').on("change",function() {
var formData = new FormData($('form.upload-form'));
$.ajax({
url: "upload.php",
type: "POST",
data: formData,
success: function (msg) {
alert(msg)
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
这会向upload.php文件发送请求,但是没有数据发送,基本上我的表单就是这样:
<form class="upload-form">
<input type="file" name="input_photo" class="input_photo" />
</form>
Run Code Online (Sandbox Code Playgroud)
似乎没有数据在头文件中传递,我想我会通过PHP使用$_POST['data']数组或$_FILES?有更好知识的人请帮助解释一下,进一步理解这一点会很棒.谢谢.
我有以下脚本从输入类型的文件中获取文件数据:
var uploadfiles = $("#upFile").get(0);
var uploadedfiles = uploadfiles.files;
var fromdata = new FormData();
for (var i = 0; i < uploadedfiles.length; i++) {
fromdata.append(uploadedfiles[i].name, uploadedfiles[i]);
}
// ajax code omitted that uploads file
Run Code Online (Sandbox Code Playgroud)
这在我测试过的所有浏览器中都很有效,除了IE 11.除此之外它还不明白FormData()是什么?我现在已经在线阅读了很多不同的解决方法,但是没有一个可以工作,无论我什么也没做,无法从输入中获取文件的详细信息.还有其他人有这个可以帮助吗?即使我尝试使用jQuery来获取对象,然后由于某种原因未定义'files'.
编辑:在线阅读更多,似乎可能是因为IE在提交表单之前不提供对输入的访问,但是我使用ajax上传文件,所以我无法真正提交它.
编辑2:我还应该提一下,在文件输入的更改事件中调用此代码,不确定它是否有任何相关性,但最好提及它