我嘗試通過ajax從域外調用ASP MVC動作。AJAX調用ASP MVC動作
設置
我主持一個MVC應用程序使用此操作中:
[HttpPost]
[AllowAnonymous]
public ActionResult AjaxLogin(LoginViewModel model)
{
[..Login stuff..]
return Json(new { Url: "...", Result: "..." });
}
使用
爲了測試我嘗試從火狐HttpRequester附加一個manuell調用,這個結果:
它工作正確,答案如預期。所以現在我想從第二個網頁(不同的域)發出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調用只給我一個錯誤。
那麼,爲什麼我的TESTCALL工作,但我的Ajax調用呢?
嘗試
我也嘗試過使用firefox調試工具進行網絡分析。
但我不明白爲什麼它不工作,因爲它顯示「狀態碼200」,但結果是空的!?
我不知道這是答案,但你有沒有試過JSONP - http://stackoverflow.com/questions/2067472/what-is-jsonp-all-about –
另一件事是,如果你是從另一個URL請求數據 - 不是更好地使用Web API控制器? –