
这段代码可以在FF和chrome中运行。在IE8或IE9中,我得到一个500错误,告诉我一个非空属性是空的。
这是html
<div id="upload_button_div_general" class="fileupload-buttonbar" data-url="/Upload/SomeMethod">
<label class="fileinput-button ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" role="button">
<span class="ui-button-text">
<span>Add Documents...</span>
</span>
<input id="upload_button" type="file" name="postedFiles" multiple="" />
</label>
</div>
<div id="UploadMessage" data-bind="visible: showMessage">
<span>Documents</span>
<ul data-bind="foreach: upload()">
<li>
<a href="#" data-bind="click: $parent.openFile">
<span data-bind="text: $data.fileName"> </span>
</a>
</li>
</ul>
</div>这是javascript
function Upload(div, additionalParams, successFunc, failureFunc) {
$('#' + div).fileupload({
dataType: 'json',
url: rootPath + 'Upload/SomeMethod',
formData: additionalParams,
start: function (e, data) {
showLoading();
},
stop: function (e, data) {
hideLoading();
},
add: function (e, data) {
data.submit();
},
always: function (e, data) {
var result = data.result;
if (result.HasError) {
failureFunc(result.Error);
} else {
successFunc(result);
}
}
});
};控制器方法是
public virtual JsonResult SomeMethod(IEnumerable<HttpPostedFileBase> postedFiles, int id)发布于 2013-03-22 23:04:02
我能够通过包含jquery.iframe-transport.js让它工作,然后我不得不从div中删除"with“数据绑定来使它在IE8中工作,因为它在IE9中工作。(我在我发布的代码上面有一个with binding )谢谢你的所有建议。
发布于 2013-03-18 15:26:08
由于此函数在FF中运行良好,因此只有一种可能性,即您在此处传递的变量仅针对IE未定义。
在IE控制台中检查每个变量的值。
提示: IE对类型和所有东西都很严格。
例如:
parseInt(Number); FF和Chrome假定它是十进制值,而IE假定它是八进制数。因此,推荐使用parseInt(Number,10)。
甚至是关于日期,如果您提供
var currentDate = new Date("March 18, 2013 11:13:00")在Chrome和FF中工作良好,但在IE中显示undefined或invalid Date。
您可以找到有关推荐的日期here表示法的更多信息
所以,在上面的例子中,我只是想告诉你,你可能忘记了声明类型,或者正确的符号。
虽然这不是你想要的答案,但我希望这些信息能帮助你。
更新:由于错误是500 error,那么问题更有可能是rootPath变量的值。
发布于 2013-09-13 22:16:45
只需将content-type设置为text/html并将其作为JSON发送。
这应该适用于所有浏览器。
https://stackoverflow.com/questions/15425934
复制相似问题