【问题标题】:Autocomplete AJAX request is not permitted in IEIE 中不允许自动完成 AJAX 请求
【发布时间】:2012-02-28 00:56:27
【问题描述】:

以下代码在 IE 中给我带来了问题。 IE 告诉我存在安全风险并禁止代码运行。

$("#searchbox").autocomplete({ 
  source: function(request, response) {
    $.ajax({
      url: 'http://query.yahooapis.com/v1/public/streaming/yql',
      dataType: 'JSONP',
      data: {
        format: 'json',
        q: 'select * from xml where url="http://google.com/complete/search?hl=nl&output=toolbar&q=' + encodeURIComponent(request.term) + '"'
      },
      success: function(data) {
        if (typeof data == 'string') data = $.parseJSON(data);
        response(
          $.map(data.query.results.toplevel.CompleteSuggestion, function(item) {
            return { label: item.suggestion.data, value: item.suggestion.data };
          })
        );
      }
    });
  },
  select: function(e, ui){
  },
  open: function(){
    doSearch($('.ui-autocomplete li:first-child a').text(), true, false);
    $(".ui-autocomplete :first-child a").addClass("ui-state-hover");
    $("#searchbox").focus();
    return false;
  },
  select: function(e, ui){
    $("#searchbox").autocomplete('search', ui.item.value);
  },
  close: function (event, ui) {
    val = $("#searchbox").val();
    $("#searchbox").autocomplete( "search", val ); 
  }
});

我做了一些调查,结果发现这条线给了我问题:url: 'http://query.yahooapis.com/v1/public/streaming/yql',

所以我想知道我可以替换什么或修改什么以使其工作。这是现场版:JsBin

【问题讨论】:

  • 首先,在代码中有 2 个选择函数。不确定这会搞砸什么。第二也许尝试将网址更改为https?
  • 我在您的 JsBin 链接上的控制台“未捕获的 ReferenceError:doSearch 未定义”中看到错误。
  • 请不要介意自动完成 jquery 事件,它们并不重要,它们不会导致问题。问题在于 ajax 请求。
  • 我看到该 url 是由 Yahoo 提供的(作为服务)也许还有另一个我可以使用的 Web 服务..??

标签: jquery ajax autocomplete jsonp


【解决方案1】:

这看起来可能是跨域请求,这在我的经验中很痛苦。

您将需要使用 XDR 调用(并非所有 IE 版本都支持),或者您需要使用来自主机的反向代理...请参阅这篇文章:http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

【讨论】:

  • 谢谢,我会调查的。
猜你喜欢
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
  • 2012-11-03
  • 2019-08-31
  • 2016-03-03
  • 2017-08-29
  • 2017-12-09
  • 2015-11-29
相关资源
最近更新 更多