zoukankan      html  css  js  c++  java
  • jquery ajax 在ie下面没有调用的原因

     

    今天发现jquery 1.7.2 在ie8下面的没有调用$.get()方法。

    1,然后各种调试,最后发现:把ie把关了,再打开$.get()。会调用,再第二次调用的用的时候发现又不行了。于是我推断是ie缓存的问题,把ie缓存清除后,果然可以了。但是客户不可能知道清理缓存。所以只能自己想办法了

    在网上发现各大朋友都给了个方法就是用jquery自带的方法:

    $.ajaxSetup({cache: false });

    另外还有分析是,ie是根据请求的url是不是一样来是否发送请求,对于同一请求,ie只发送一次http请求,所以同一请求发送多次,但ie实际是不会发送的。

    有了这个原因:那么就好办了,可以在url后面加个时间戳。

    1
    2
    3
    4
    5
    6
    7
    $.get(
        "imgsUpload",
        {imgsPath:path,timeStamp: new Date().getTime()},
        function(data){
         
        }
    );

    2,以下问题就是个人问题了,但是请求是能发送到后台了,并且也执行了,也返回了.但是不能执行ajax的回调方法。

    但在其它浏览器是正常的。分析返回过来的data,发现乱七八糟的。那就是返回时的数据类型不对,我返回的json,但是我想都是以字符串形式返回的,所以我在服务器端有如下代码:

    response.setContentType("text/plain;charset=UTF-8");

    ff,chrome是正常的,但是ie去只能把识别为text,不能解析成json,所有没有调用ajax的回调方法

    经过测试发现,可以不用设置消息头,当然要设置也是可以的,但是不是text/plain,而是:

    response.setContentType("application/json;charset=UTF-8");

    以上问题应该是很简单的问题,但是好朋友竟然不知道,而且问题综合在一起了很难发现,特此做笔记。

  • 相关阅读:
    unityshader(属性)
    unity_实用小技巧(相机跟随两个主角移动)
    unity_实用小技巧(空指针错误)
    unity_实用小技巧(避免游戏对象被销毁时声音消失)
    php把网络图片转Base64编码。(php将图片链接直接转化为base64编码)
    TP5.0 where数组高级查询
    使用Guzzle执行HTTP请求
    JWT实战:使用axios+PHP实现登录认证
    有关JWT(Json Web Token)的那些事
    thinkphp5一键清除缓存
  • 原文地址:https://www.cnblogs.com/iverson3/p/2728500.html
Copyright © 2011-2022 走看看