我正在學習asp.net web mvc 5/asp.net web api 2.現在,我創建了一個默認的web api 2項目(使用bootstrap模板)。我還通過以下步驟啓用了Cors:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-corsasp.net web api 2和jquery post
當我運行該項目並嘗試通過Fiddler Web Debugger調用API時,它一切正常。這是原始請求我發送:
POST HTTP:/// mywebapi /令牌HTTP/1.1 內容類型:應用程序/ x-WWW的形式進行urlencode 用戶代理:提琴手 主機: 內容 - 長度:71
grant_type =密碼& [email protected] &密碼= mypwd01
但現在我試着通過一個jQuery調用Ajax調用API,現在我被困。 這是我到目前爲止有:
function sendRequest() {
//var method = $('#method').val();
var email = '[email protected]';
var pwd = 'mypwd01!';
$.ajax({
//crossDomain: true,
type: 'post',
url: serviceUrl,
dataType: 'jsonp',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
data: 'grant_type=password&userName='+ email + '&Password=' + pwd,
xhrFields: { withCredentials: true }
}).done(function (data) {
$('#value1').text(data);
}).error(function (jqXHR, textStatus, errorThrown) {
$('#value1').text(jqXHR.responseText || textStatus);
});
}
現在,當我跑我的網頁,我得到錯誤400,錯誤請求(我的本地機器上)。當我在服務器上運行相同的頁面時,我得到一個200響應。我無法弄清楚我做錯了什麼。
謝謝您的回答。我已經測試過,但沒有奏效。當我在服務器上測試它時,我收到了grant_type錯誤。我通過Chrome在客戶端注意到的是,請求是通過GET發送的。我改變了按鈕點擊使它成爲一個jQuery事件,並使用event.preventDefault(),但沒有運氣。 – kwv84 2014-09-03 13:29:21