【问题标题】:jQuery $.ajax not working with url params in IEjQuery $.ajax 不能在 IE 中使用 url 参数
【发布时间】:2011-04-23 21:07:01
【问题描述】:

当我执行以下操作时:

$.ajax({
  type: 'GET',
  url: 'http://www.domain.tld/feed',
  dataType: 'xml',
  success: function(data) {
    ...
  }
});

在 IE(8) 中一切正常。

但是当我将 url 选项更改为

http://www.domain.tld/?feed=myfeed

IE 什么都不做。我认为 ? 是问题所在,但我怎样才能在这个可爱的浏览器中让它工作呢?

【问题讨论】:

  • 您是否尝试过使用data 参数添加“提要”?可能是 GET 方法覆盖了 URL 中任何现有的 GET 参数
  • 您的 ajax 调用中是否有显示实际问题的错误函数?使用错误:这里的sytnax:api.jquery.com/jQuery.ajax
  • 是:textStatus 返回'parsererror',errorThrown 返回'TypeError: Object required'
  • 至少有服务器响应。你检查过,究竟是什么发送到服务器?服务器响应什么?
  • 嗨 Arne,您是否认为 http://www.domain.tld/feedhttp://www.domain.tld/?feed=myfeed 是 2 个不同的 URL?

标签: internet-explorer jquery parameter-passing


【解决方案1】:

如果你使用数据对象,它会起作用吗?

see here jquery ajax

数据(对象,字符串)

要发送到服务器的数据。它是 转换为查询字符串,如果不是 已经是一个字符串。它附加到 GET 请求的 url。见流程数据 防止这种自动的选项 加工。对象必须是键/值 对。如果值是一个数组,jQuery 序列化多个相同的值 基于值的键 传统设置(如下所述)。

你的情况

$.ajax({
  type: 'GET',
  url: 'http://www.domain.tld/',
  dataType: 'xml',
  data: "feed=myfeed",
  success: function(data) {
    ...
  }
});

【讨论】:

    【解决方案2】:

    试试这个:

    $.ajax({
        type: 'GET',
        url: 'http://www.domain.tld/feed',
        dataType: 'xml',
        data: "feed=myfeed",
        success: function(data) {
            // success handler...
        }
    });
    

    当您为 url 执行此操作时:http://www.domain.tld/?feed=myfeed

    我相信您是在向域中的默认页面发出请求:http://www.domain.tld/

    [编辑]

    Ajax IE Caching Issue

    【讨论】:

    • 只有第一个提要有 URL“/feed”,第二个只是基本 URL 的参数,而不是“/feed”。
    • 那么可能是 IE 和获取请求的缓存问题。
    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2011-10-19
    • 1970-01-01
    • 2015-10-26
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多