Я изучаю asp.net web mvc 5/asp.net web api 2. Теперь я создал проект web api 2 по умолчанию (с шаблоном бутстрапа). Я также включил Cors через эти шаги: http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-corsasp.net web api 2 и jquery post
Когда я запускаю проект и пытаюсь вызвать api через Fiddler Web Debugger, все работает отлично. Это сырье запрос я послал:
POST HTTP: /// mywebapi/Токен HTTP/1.1 Content-Type: применение/х-WWW-форм-UrlEncode User-Agent: Скрипач Ведущий: Контент- Длина: 71
grant_type = пароль & [email protected] & Password = mypwd01
Но теперь я пытаюсь вызвать API-интерфейс с помощью AJAX вызова JQuery, и теперь я застрял. Это то, что я до сих пор:
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, Bad запрос (на моей локальной машине). Когда я запускаю ту же страницу на сервере, я получаю ответ 200. Я не могу понять, что я делаю неправильно.
Спасибо за ваш ответ. Я протестировал его, но это не сработало. Когда я протестировал его на сервере, я получил ошибку grant_type. То, что я заметил на клиенте через Chrome, заключается в том, что запрос отправляется через GET. Я изменил кнопку, чтобы сделать это событием jQuery и использовать event.preventDefault(), но не повезло. – kwv84