IE 9问题:在Ajax调用中没有获得成功响应

时间:2016-08-10 09:51:15

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

在对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);
   }
    });

任何有用的帮助

1 个答案:

答案 0 :(得分:0)

我不知道你为什么现在就IE9提问,但仍然会在这里提供答案。

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

  1. 将类型从GET更改为Post
  2. 尝试缓存预防 - 尝试在URL请求结束时附加动态字符串(如果可能,请在当前时间)。这将使您的所有要求变得独一无二。将阻止浏览器使用缓存的响应。
  3. 在您的回复标题中,尝试添加"Cache-Control","no-cache,no-store"以明确告知浏览器禁用此请求的缓存。
  4. 禁用缓存y只需在AJAX调用中添加“cache:false”。