我在表单中使用http://www.malsup.com/jquery/form/#ajaxForm 。我设置了一个表单来通过 Ajax 将图像上传到服务器。没有 IE9 一切正常 :)。我无法从服务器获得 JSON 响应,尽管在其他浏览器上它可以正常工作。我试图在成功函数中放置一些 alert(),但看起来成功函数没有加载事件。
我的 JS 代码:
$(function() {
$('#upload-image').ajaxForm({
dataType: 'json',
success: processJson
});
function processJson(data) {
var i = 0;
$.each(data, function(key, val) {
$('<li id="image_' + key + '"><input type="checkbox" name="delete_image[' + key + ']" /><img src="' + val + '" alt=""/></li>').hide().appendTo('#images').delay(i).fadeIn('slow');
i += 1000;
});
}
});
以及在 PHP 中生成 JSON 响应的代码:
$output = array();
foreach ($files['Filedata'] as $file)
{
$file_arr = $this->_save_image($file);
$image = ORM::factory('image');
$image->filename = $file_arr['filename'];
$image->gallery_id = $gallery_id;
$image->save();
$output[$image->id] = Route::get('uploads')->uri(array('dir' => 'images/120x120', 'file' => $image->filename));
}
$this->request->headers('Content-type','application/json; charset='.Kohana::$charset);
$this->response->body(json_encode($output));
我发现了一些关于类似问题的帖子(从响应中删除 html 标签),但这对我没有帮助。怎么了?
编辑: IE 调试模式告诉我,访问已在“form.submit();”行被拒绝 在 jQuery 表单插件库中。这似乎是某种与在 localhost 上运行 javascript 相关的安全拒绝。