0

ユーザーがユーザー名を挿入する必要があるフォームを開発しています。ユーザーのユーザー名が有効であることをぼかしで確認したい:

このスクリプトを追加しました:

<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

4 に答える 4

2

まず、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!";
       }
    }
}
于 2012-01-31T23:14:01.157 に答える
1

通常、JqueryからAJAXコマンドを実行すると、データ属性は次のような配列になります。

 $.ajax({
    type: "GET",
    url: "checkUsername.php",
    data: {
        usr: usr.value 
    },
   async: false,
   dataType: "text"}).responseText;   
于 2012-01-31T23:10:44.307 に答える
0

他にすべきことは、405 エラーの原因となる ajax 呼び出しの上の JavaScript エラーをチェックすることです...

于 2013-11-05T01:32:39.307 に答える
0

オプションで追加

dataType: 'jsonp',
于 2012-11-11T04:32:45.687 に答える