2016-02-04 96 views
3

我嘗試通過ajax從域外調用ASP MVC動作。AJAX調用ASP MVC動作

設置

我主持一個MVC應用程序使用此操作中:

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

使用

爲了測試我嘗試從火狐HttpRequester附加一個manuell調用,這個結果:

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工作,但我的Ajax調用呢?

嘗試

我也嘗試過使用firefox調試工具進行網絡分析。

但我不明白爲什麼它不工作,因爲它顯示「狀態碼200」,但結果是空的!?

network

+0

我不知道這是答案,但你有沒有試過JSONP - http://stackoverflow.com/questions/2067472/what-is-jsonp-all-about –

+0

另一件事是,如果你是從另一個URL請求數據 - 不是更好地使用Web API控制器? –

回答