我正在努力了解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)。

10-06 04:55