Ошибка HTTP 405.0 - метод не разрешен с использованием Jquery ajax get - PullRequest
0 голосов
/ 01 февраля 2012

Я разрабатываю форму, в которой пользователь должен вставить имя пользователя.Я хочу проверить на размытие, что имя пользователя пользователя является действительным:

Я добавил этот скрипт:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script>

В HTML:

<input name="username" type="text" onblur="checkUsername()">

Скрипт:

function checkUsername(){
    var usn = document.getElementsByName('username')[0];
    if(usn.value != "") {
       var html = $.ajax({
       type: "GET",
       url: "checkUsername.php?",
       data: "usr=" +usr.value 
       async: false,
       dataType: "text"}).responseText;   
       if(html == "si") {
          usn.style.backgroundColor = "green";
       } else {
          usn.style.backgroundColor = "red";
          usn.value = "Username still exists!";
       }
    }
}

Так что onBlur не работает, и когда я отправляю форму, появляется ошибка, подобная этой:

HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.

Что я могу сделать?Где проблема?

Ответы [ 4 ]

2 голосов
/ 01 февраля 2012

Прежде всего рассмотрите возможность обновления JQuery до версии 1.6.x.

Попробуйте эту модифицированную версию вашего скрипта:

function checkUsername(){
    var usn = document.getElementsByName('username')[0];
    if(usn.value != "") {
       var html = $.ajax({
       url: "checkUsername.php",
       data: "usr=" +usr.value 
       async: false,
       dataType: "text"}).responseText;   
       if(html == "si") {
          usn.style.backgroundColor = "green";
       } else {
          usn.style.backgroundColor = "red";
          usn.value = "Username still exists!";
       }
    }
}
1 голос
/ 01 февраля 2012

Обычно, когда я запускаю команду AJAX из Jquery, мой атрибут данных представляет собой такой массив:

 $.ajax({
    type: "GET",
    url: "checkUsername.php",
    data: {
        usr: usr.value 
    },
   async: false,
   dataType: "text"}).responseText;   
0 голосов
/ 05 ноября 2013

Другая вещь, которую нужно сделать, это проверить наличие ошибок javascript над вашим вызовом ajax, что также приведет к ошибке 405 ...

0 голосов
/ 11 ноября 2012

в опции добавить

dataType: 'jsonp',
...