V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
zackary
V2EX  ›  JavaScript

ajax 请求在 IE11 下失败的问题

  •  1
     
  •   zackary · 2018-07-14 08:32:30 +08:00 · 4058 次点击
    这是一个创建于 2332 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各路大神好,最近尝试用 python 框架 flask 最一个网站,js 也是现学的,水平比较次。项目做完后发现有一个页面在 chrome 下完全正常,在火狐浏览器和 IE11 就出现请求失败的问题。

    该页面是实现一个进度条显示,使用 ajax 发送异步请求,一个请求真实的任务函数,一个请求执行状态(每隔 1 秒请求一次)

    具体 js 代码如下。在 chrome 下一切正常,但是在 IE11 下,点击 DA 这个 Button 后没有任何反应,调试模式下发现 ajax 下的 post 请求根本没有发送,但多次不停点击 Button 后,又能正常运行,post 请求正常,显示正常,

    麻烦大神们帮忙看下,具体哪里出问题,谢谢!

    <script> $(document).ready(function () { $("#DA").click(function () { var DA = document.getElementById("DA"); var CA = document.getElementById("CA"); DA.setAttribute("disabled", "disabled"); CA.setAttribute("disabled", "disabled"); console.log(DA); var seed = Math.random(); console.log(seed); var hostname = "{{ result }}";//获取例检主机名称 var hosttype = "{{ type }}";//获取例检主机名称 alert(hostname) $("#bar").attr("class", "progress-bar progress-bar-striped active"); $("#bar").width(0); $.ajaxSetup({ cache: false }); var sitv = setInterval(function () { var urlStr = "/check/autocheck_status/" + Math.random(); $.ajax({ url: urlStr, data: {seed: seed}, type: 'POST', async: true, success: function (percent) { var bar = document.getElementById("bar"); bar.style = "width: " + percent + "%"; $("#bar").width(percent + '%'); console.log(percent) }, }) }, 1000); $.ajax({ url: "{{ url_for("autocheck_run") }}", type: 'POST', async: true, dataType:"json", data: { hostname: hostname, type: hosttype, seed: seed }, success: function (data) { clearInterval(sitv); $("#bar").width(100 + "%"); $('#bar').attr("class", "progress progress-bar-success"); var para = document.createElement("h5"); para.id = "result"; var element = document.getElementById("pic"); var flag = data.flag var filename = data.filename if( flag==="success"){ var node = document.createTextNode("例检完成"); para.appendChild(node); element.appendChild(para); var a = document.createElement("a"); var node1 = document.createTextNode("导出报告"); a.appendChild(node1); var down_link = "/download/" + filename a.setAttribute("href",down_link); a.className="btn btn-primary btn-xs"; var element1=document.getElementById("result"); element1.appendChild(a) } else{ var node2 = document.createTextNode("例检失败"); para.appendChild(node2); element.appendChild(para); } CA.removeAttribute("disabled") }, }) }) }); </script>
    5 条回复    2018-07-14 09:08:06 +08:00
    GoPython
        1
    GoPython  
       2018-07-14 08:35:09 +08:00 via Android
    Emmmm,或许你截图错误出来还好一点
    zackary
        2
    zackary  
    OP
       2018-07-14 08:49:40 +08:00
    额。。。问题好像解决了,button 的 type 之前是 submit,改成 button 就可以了
    wukaichao
        3
    wukaichao  
       2018-07-14 09:04:28 +08:00 via iPhone
    获取 dom 的时候 js 和 jquery 混用看着比较难受
    wly19960911
        4
    wly19960911  
       2018-07-14 09:06:13 +08:00
    一个建议:活用 markdown,别把一大串代码和压缩一样丢过来,没法看。实在不行用 gist 也可以
    itsluo
        5
    itsluo  
       2018-07-14 09:08:06 +08:00
    这样复制代码过来怎么看...最起码截个图好吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2691 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 09:18 · PVG 17:18 · LAX 01:18 · JFK 04:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.