【问题标题】:IE 9 Issue : Not getting success response in Ajax callIE 9 问题:在 Ajax 调用中未获得成功响应
【发布时间】:2016-12-16 15:09:19
【问题描述】:

在对 REST API 进行 Ajax 调用时,我在 IE9 中遇到问题。 在 IE 9 中,我没有得到成功响应,而在所有其他浏览器中它工作正常,我在 Chrome、FF 中得到成功响应(即使在 IE 10 和 11 中)。 我在 IE 9 中收到错误响应为“拒绝访问”,在控制台中显示 HTML1300:发生导航。 这个 ajax 调用也是从 http 到 https。

我也尝试使用 jsonp,但 API 不返回 jsonp 响应。 注意:这是一个简单的应用程序,不涉及后端。

下面是我的 Ajax 代码。

$.ajax({
        type: 'GET',
        url: 'https://myurl to REST API/',
        dataType: 'json',
        contentType: "application/json,
        data: {
            'select': "sum(message_count)",
            'timeRange': timeInterval
        },
        headers: {
            "Authorization": "Basic " + btoa(AppFramework.constants.USER_NAME + ":" + AppFramework.constants.PASSWORD)
        },
        success: function(result) {
            AppFramework.messageCcount = result.environments[0].metrics[0].values[0];
            console.log(AppFramework.messageCcount);
        },
             error: function(xhr, status, error) {
            alert(error);
   }
    });

任何帮助appriciated

【问题讨论】:

    标签: ajax cross-domain internet-explorer-9


    【解决方案1】:

    我不知道您为什么现在问有关 IE9 的问题,但仍会在这里提供答案。

    尝试在您的 AJAX 请求中将缓存属性设置为 false。旧版本的 IE 有时倾向于缓存所有 AJAX 请求,并且不允许浏览器使用更新后的结果。您可以使用以下一种或所有方法来克服此问题:

    1. 将类型从 GET 更改为 Post
    2. 尝试缓存预防 - 尝试在 URL 请求的末尾附加一个动态字符串(如果可能,为当前时间)。这将使您的所有请求都是唯一的,并且会阻止浏览器使用缓存的响应。
    3. 在您的响应标头中,尝试添加 "Cache-Control","no-cache,no-store" 以明确告诉浏览器禁用此请求的缓存。
    4. 只需在 AJAX 调用中添加“cache:false”即可禁用缓存。

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 2021-12-20
      • 2017-02-18
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 2013-03-20
      • 1970-01-01
      相关资源
      最近更新 更多