使用jQuery UI进行简单的远程数据自动完成?

时间:2011-10-27 20:07:32

标签: jquery-ui jquery-ui-autocomplete

为什么以下代码不起作用? (如果我将远程源更改为本地,那么它运行良好)

<!DOCTYPE html>
<html>
<head>
  <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
  <script>
  $(document).ready(function() {
    $("input#autocomplete").autocomplete({
      source: "http://jqueryui.com/demos/autocomplete/search.php",
            minLength: 2,
            select: function( event, ui ) {
            }

    });
  });
  </script>
    <style>
    .ui-autocomplete-loading { background: white url('http://jqueryui.com/demos/autocomplete/images/ui-anim_basic_16x16.gif') right center no-repeat; }
    </style>  
</head>
<body style="font-size:62.5%;">

<input id="autocomplete" />

</body>
</html>

1 个答案:

答案 0 :(得分:1)

与源相同的源策略需要运行来自其他站点的脚本。

http://en.wikipedia.org/wiki/Same_origin_policy

您可以更改源以使用jquery ajax调用到另一个可以返回jsonp的站点。

请参阅此示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp

或确保给定的源网址返回jsonp。