У меня есть простой яваскрипта Ajax запрос:ASP MVC 3 - Jquery Ajax всегда Параметры отправки не Начать
$("#login-submit").button().click(function() {
var ajaxOptions = {
url: "http://localhost:29097/authentication/",
type: "POST",
data: $("login-form").serialize(),
success: function(result) { $("body").html(result); }
};
$.ajax(ajaxOptions);
});
Однако всякий раз, когда я отсылаю запрос, он всегда посылает запрос OPTIONS, не указан запрос на POST. После прочтения в нем больше кажется, что может быть сгруппированным. Я добавил настраиваемый фильтр действий в моем приложении MVC, который проверяет запросы OPTION и отвечает заголовком «Разрешить», указывая «GET, POST, PUT, DELETE», хотя никогда не кажется, что он выполняет последующий запрос POST ... Я что-то здесь отсутствует?
Запрос (попробовал это в Firefox, Chrome):
OPTIONS http://localhost:29097/authentication/ HTTP/1.1
Host: localhost:29097
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Origin: null
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
Ответ:
HTTP/1.1 401 Unauthorized
Server: ASP.NET Development Server/10.0.0.0
Date: Sun, 19 Jun 2011 16:20:41 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Allow: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: *
Access-Control-Allow-Origin: *
Cache-Control: private
Content-Length: 0
Connection: Close
Я посылаю обратно 401 запросить себя через MVC, как это казалось, что это было бы лучший заголовок для использования, чтобы указать, что учетные данные пользователей недействительны. Может ли этот код состояния вызывать какие-либо проблемы?
Что делать, если вы ответите 200, а не 401? Мне кажется, что реакция с ошибкой вряд ли будет работать. – Pointy
@Pointy - То же самое, он просто возвращается и никакого последующего запроса не делается. Эта проблема началась, когда я делал простой веб-сервис ASPMVC RESTful, и всякий раз, когда я вызывал его с помощью Jquery Ajax, параметры не были автоматической привязкой и всегда были нулевыми. Это привело к тому, что я заметил, что заголовки не содержат никакой информации о сообщении, поскольку это был запрос OPTIONS, и поскольку он не отслеживает ВАРИАНТЫ с POST после получения ответа, я немного потерял то, что еще я могу сделать ... Я уверен, что это должно быть выполнимо, хотя ... – somemvcperson