为什么以下代码不起作用? (如果我将远程源更改为本地,那么它运行良好)
<!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>
答案 0 :(得分:1)
与源相同的源策略需要运行来自其他站点的脚本。
http://en.wikipedia.org/wiki/Same_origin_policy
您可以更改源以使用jquery ajax调用到另一个可以返回jsonp的站点。
请参阅此示例:http://jqueryui.com/demos/autocomplete/#remote-jsonp
或确保给定的源网址返回jsonp。