Запрос на перекрестный домен JQuery AJAX (json) и ASP.NET MVC
Мне казалось, что это избитая тема, но я не смог найти ответ. знак равно
Я делаю jquery ajax requst to
localhost: 666 из localhost: приложение 555
$.ajax({
url: "http://localhost:666/request",
dataType: 'json',
timeout: 5000,
success:...
У меня есть хром:
XMLHttpRequest не может загрузить http://localhost:666/request. Происхождение http://localhost:555 не разрешено Access-Control-Allow-Origin.
Каково решение проблемы?
Ответы
Ответ 1
Вы можете инициировать междоменный запрос на своей веб-странице, создав объект XMLHttpRequest или объект XDomainRequest. Конечный пользовательский веб-браузер запросит данные с сервера домена, отправив заголовок Origin со значением источника. Если сервер отвечает " Access-Control-Allow-Origin: * | Origin", нам разрешено обращаться к данным; иначе ответ будет неавторизованным.
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
// HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://AllowedDomain.com");
}
Статья здесь: Запросы Cross-Origin и ASP.NET MVC
Ответ 2
ajax-вызовы ограничиваются только родительским доменом. для этого сайт на localhost: 666 не может открыть ajax-соединение с localhost: 555, поскольку они принадлежат к другому домену (или источнику)
вам нужно попробовать jsonp: http://www.google.com/search?q=jsonp
Ответ 3
Попробуйте использовать функцию dataType: 'jsonp' или $.getJSON.