JQuery AJAX (JSON) междоменный запрос и ASP.NET MVC

Мне казалось, что это избитая тема, но я не мог найти ответ. =(Я делаю запрос jquery ajax к 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.

Какое решение проблемы?

3 ответа

Вы можете инициировать междоменный запрос на своей веб-странице, создав объект XMLHttpRequest или объект XDomainRequest. Веб-браузер конечного пользователя будет запрашивать данные с сервера домена, отправляя заголовок "Origin" со значением 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

Ajax-вызовы ограничены только родительским доменом. для этого сайт на localhost:666 не может открыть ajax соединение с localhost:555, так как они принадлежат другому домену (или источнику)

вам нужно попробовать jsonp: http://www.google.com/search?q=jsonp

Попробуйте использовать функцию dataType: 'jsonp' или $.getJSON.

Другие вопросы по тегам