ajaxfileupload IE10 拒绝访问

功能:点击一个按钮,实现图片异步上传,并展示上传结果
实现:点击按钮–>出发fileupload 的click事件–>上传图片–>出发file的change–>监听change,动态创建form表单,提交到服务端,target 设置为一个隐藏的iframe–>监听iframe 的load事件,读取服务端返回结果进行展示

如上流程在IE11,chrome 中都正常,在IE10 上form表单post 时候,报告 “拒绝访问”,错误

解决办法:不通过点击按钮触发input的click事件,直接将透明file覆盖在按钮上方,如上问题解决

DEMO代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<div id="container">
    点击上传图片
</div>
<input type="file" id="hidenImgUpload" name="hidenImgUpload"
       style="width:100px;height: 100px; position: absolute;top:0px;left: 100px;;" >

<script>
  $(function(){
      $("#hidenImgUpload").change(function(){
           $.ajaxFileUpload({
              url: 'uploadImage.html',
              secureuri: false,
              fileElementId: 'hidenImgUpload',//file标签的id
              dataType: 'json',//返回数据的类型
              data: {},//一同上传的数据
              success: function (data, status) {
                   if (data.success) {
                      alert("上传成功");
                  } else {
                      alert("上传失败");
                  }
              },
              error: function (data, status, e) {
                  alert(e);
              }
          });
      })
  })
</script>
</body>
</html>

为了防止ie下 会点击到输入框问题,需要将input file的font-size:50px ,结合left:-100px,这样这个组件就都是按钮的区域了

另外排查问题经验总结:
1. 删除掉所有的try catch 防止异常被吃掉
2. 使用源代码调试,不要使用压缩版本,这样可以更直接看到错误内容
3. 细心比较DEMO与异常代码差异,不要错误出在哪里,就钉在哪里,要开放,找不到原因的时候可以休息一下,换换脑子,说不定就灵光乍现。
4. 排查异常的简易DEMO还是有价值的,但是极其复杂的问题,还是在出现异常的场景直接排查肯能更简单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值