Запрос на перекрестный домен 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.