2015-02-03 2 views
0

У меня есть немного API на основе Rails. Я пытаюсь извлечь данные и показать их в select через jQuery UI autocomplete. Но есть ошибка:Rails CORS и jQuery autocomplete

XMLHttpRequest cannot load http://api.exline.systems/regions/origin?title=%D0%95%D1%81. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 404. 

Я сделал все работы с заголовками. Например, если я прямой запрос через браузер: http://api.exline.systems/public/v1/regions/origin.json?title=%D0%B0%D0%BB

Я могу видеть, что все заголовки обслуживаются сервером:

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization 
Access-Control-Allow-Methods:POST, PUT, DELETE, GET, OPTIONS 
Access-Control-Allow-Origin:* 
Access-Control-Request-Method:* 

Но с помощью этого кода, заголовки не обслуживается сервером:

$(function() { 
    $('#calc-origin-ajax').autocomplete({ 
    source: function (request, response) { 
     $.ajax(
     { 
     url: 'http://api.exline.systems/regions/origin', 
     dataType: "json", 
     data: { title: request.term }, 
     success: function (data) { response(data); } 
     }); 
    } 
    }); 
}); 

Что мне делать, чтобы заставить его работать?

ответ

0

Почему вы предоставите ссылку на

http://api.exline.systems/public/v1/regions/origin.json

Но попытку сделать запрос на

http://api.exline.systems/regions/origin

С первой ссылкой все отлично работает: JSFIDDLE

+0

К сожалению, под локальным он по-прежнему не работает. Такого маршрута нет http://api.exline.systems/regions/origin.json. Только http://api.exline.systems/public/v1/regions/origin.json Возможно, я должен исправить что-то в моем браузере, чтобы разрешить запросы на localhost? –

+0

, если такого маршрута нет, почему вы пытаетесь его использовать в своем коде? –

+0

Мне очень жаль ... Просто не спала много часов. Был смущен, даже когда вы показали ошибку%) –