На моем сервере в моем Синатра приложение у меня есть следующие настройки:Междоменное AJAX запрос с Синатра не работает - отправка JSON с jQuery.ajax
before do
headers 'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST'],
'Access-Control-Allow-Headers' => ['Content-Type', 'Accept', 'X-Requested-With', 'access_token']
env['rack.errors'] = error_logger
end
В моем внешнем интерфейсе приложения я выполнить следующий запрос HTTP:
$.ajax({
type: "POST",
url: "http://findaspot.multimediatechnology.at/api/",
data: json,
dataType: "json",
success: function (data) {
console.log('Success!');
console.log(data);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
})
Я всегда получаю сообщение об ошибке:
XMLHttpRequest cannot load http://findaspot.multimediatechnology.at/api/. Invalid HTTP status code 404
ошибка имеет что-то делать с предполетной О.П. TIONS на сервер - потому что я отправляю JSON - я уже пытался установить параметр jQuery.ajax «async» в false - тоже не работал.
До сих пор у меня нет никаких идей, как решить эту проблему. Было бы хорошо, если бы вы, ребята, могли мне помочь.
Я понимаю, что заголовок Access-Control-Allow-Origin должен быть предоставлен хостом, на который вы делаете запрос, а не клиентом, делающим запрос XHR. Другой вариант заключается в том, чтобы включить CORS и установить референт в ваш домен, и им нужно будет установить CORS, чтобы ваш домен мог совершать звонки. – Phobos