2016-02-04 2 views
3

Я пытаюсь вызвать действие ASP MVC извне домена через ajax.AJAX вызывает действие ASP MVC

Настройка

Я принимал приложение MVC с этим действием внутри:

[HttpPost] 
[AllowAnonymous] 
public ActionResult AjaxLogin(LoginViewModel model) 
{ 
    [..Login stuff..] 
    return Json(new { Url: "...", Result: "..." }); 
} 

Использование

Для тестирования я пытаюсь Manuell Вызов с HttpRequester аддон от Firefox, с этим результатом:

test call

Он работает правильно, и ответ такой, как ожидалось. Поэтому теперь я хочу сделать ajax-вызов со второй веб-страницы (другого домена).

Мой JQuery (2.2.0) Ajax вызов выглядит следующим образом:

var requestData = { 
    model: { 
     Email: emailValue, 
     Password: passwordValue 
    } 
}; 

var requestPlain = JSON.stringify(requestData); 

$.ajax({ 
    url: json_login_url, 
    data: requestData, 
    method: 'POST', 
    async: false, 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success: function (result, textStatus, jqXHR) { 
     [...]      
    }, 
    error: function (jqXHR, textStatus, errorThrown) { 
     [...] 
    }, 
    beforeSend: function (jqXHR, settings) { 
     return true; 
    }, 
    complete: function (jqXHR, textStatus) { 
    }, 
}); 

Проблема

вызов Ajax только дает мне ошибку.

error

Так почему мой testcall работает, но мой Аякса вызов не?

Попытки

Я также попробовал сетевой анализ с инструментами отладки Firefox.

Но я не понимаю, почему он не работает, потому что он показывает «код состояния 200», но результат пуст !?

network

+0

Я не уверен, это ответ, но вы попробовали JSONP - http://stackoverflow.com/questions/2067472/what-is-jsonp-all-about –

+0

, и еще одна вещь - если вы запрашиваете данные с другого URL-адреса, не так ли? лучше использовать контроллеры Web API? –

ответ

0

Это может или не может решить проблему, но если вы делаете кросс-домен AJAX вызывает, убедитесь, что вы настроили ваши CORS:

Setting Access-Control-Allow-Origin in ASP.Net MVC - simplest possible method

+0

Но это не объясняет, почему работает тест с HttpRequester? Если это решение, оно также должно потерпеть неудачу. –

Смежные вопросы