我正在努力了解Ajax的概念。我的目标很简单,从教育机构列表中获取自动填写表格。目标:用户输入类似“瓦大学”然后输入“滑铁卢大学”的名称。这是我嵌入的红宝石的外观:
<%= f.text_field :university, :id => "university-field", :onkeydown=>"updateUniSearch()" %>
而我的javascript:
function updateUniSearch() {
/*jQuery UI Autocomplete for University Search Form*/
$("#university-field").autocomplete({
dataType: "json",
source: "http://universities.hipolabs.com",
async: true,
crossdomain: true
});
};
我在这里找到了大学名单API:https://github.com/Hipo/university-domains-list
当前,当我运行页面时,出现以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://universities.hipolabs.com/?term=university. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
我是要正确执行此操作,还是要离开?同样,我只是想使用自动完成功能从外部来源显示大学列表,而不是尝试查找大量大学列表并将其保存在本地数组或javascript中。先感谢您。
最佳答案
出于安全原因,json
的dataType不支持跨域请求。尝试使用jsonp
(带填充的JSON)。