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.