【问题标题】:$.get() not working in IE8 or IE7$.get() 在 IE8 或 IE7 中不起作用
【发布时间】:2012-04-26 14:03:35
【问题描述】:

注意:我只尝试过 IE8 和 IE7(通过 IE8 开发人员工具),因为这是我唯一可用的版本。

我正在为 Wordpress 使用 ajax 搜索插件,该插件可以在这里找到:http://wordpress.org/extend/plugins/threewp-ajax-search/

它在 Firefox 中运行良好,但 IE 显示发出 ajax 请求然后失败的迹象。我已将其缩小到 IE 通过使用 alert(ThreeWP_Ajax_Search.total_results); 没有从 $.get() 函数收到任何结果,即使其他浏览器获得许多结果,它也会始终提醒 0。这是处理 ajax 请求的插件部分:

$.get(url, function(data){
        ThreeWP_Ajax_Search.results = $('.hentry', data);

        // Remove extra elements if necessary
        ThreeWP_Ajax_Search.total_results = ThreeWP_Ajax_Search.results.length;
        alert(ThreeWP_Ajax_Search.total_results);
        if ( ThreeWP_Ajax_Search.results.length > ThreeWP_Ajax_Search.options.results_to_display )
        {
            ThreeWP_Ajax_Search.results = ThreeWP_Ajax_Search.results.slice( 0, ThreeWP_Ajax_Search.options.results_to_display );
        }

        if ( ThreeWP_Ajax_Search.results.length < 1 )
            ThreeWP_Ajax_Search.hide_results();

        ThreeWP_Ajax_Search.do_callback(callback);
    });

注意:url 是标准的 Wordpress 搜索 url,由 wordpress 搜索引擎处理。我有一些搜索插件,但它们都是在服务器端执行的。

我也尝试将$.get() 替换为$.ajax() 并设置cache: false,但这没有任何效果。

有谁知道是什么导致了这个问题?

可以在以下位置找到一个实时示例:http://rcnhca.org.uk/sites/first_steps/(搜索“护理”会返回多个结果)

【问题讨论】:

  • ThreeWP_Ajax_Search 对象有什么作用?
  • @MrFoh 在您输入搜索框时返回搜索结果,(在 wordpress 搜索页面中查询您的术语并返回结果)。

标签: javascript jquery ajax internet-explorer get


【解决方案1】:

当浏览器为 IE7 或 IE8 时,似乎加载了一些条件 JS。该文件名为“selectivizr-mis.js”,加载时返回 404 错误。

网站的 IE7 和 IE8 功能可能依赖此文件中的某些内容才能正常工作?

在任何一种情况下,该文件都应该正确加载。

【讨论】:

  • 谢谢,你能告诉我它试图访问它的 URL 吗? (似乎无法在我的 IE 上获得网络连接)。然而,selectivizr 只是为旧版浏览器提供了一些 CSS 支持。不会影响 ajax 调用。
  • 今晚再次访问了您的网站。我看到了这个错误:网页错误详细信息用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET4.0C;.NET4.0E;.NET CLR 2.0.50727;.NET CLR 3.0。 4506.2152;.NET CLR 3.5.30729)时间戳:2012 年 4 月 27 日星期五 05:59:14 UTC 消息:对象不支持此属性或方法行:3 字符:1 代码:0 URI:rcnhca.org.uk/sites/first_steps/wp-content/themes/megaamazing/…
  • 谢谢它无关我只是在尝试一些东西。
【解决方案2】:

我认为问题在于 IE7/IE8 中缺乏对 CORS 的支持。也许这可能会有所帮助?

http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/

【讨论】:

  • 它在同一个域上执行请求。这是否也受到影响,因为文章提到了跨不同域的 ajax 请求?
  • @GeorgeReith 是的,如果源域是 test.com,另一个域是 a.test.com,这构成跨域请求
  • @MrFoh 我没有使用子域,但请求在同一个域上发出请求。
猜你喜欢
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多