ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp+jquery を送信すると、送信中であることが常に表示されるのはなぜですか?

thinkphp+jquery を送信すると、送信中であることが常に表示されるのはなぜですか?

WBOY
リリース: 2016-06-23 13:26:51
オリジナル
899 人が閲覧しました

以下は jquery コードです

$.ajax({			type: "POST",			url: "/thinkphp/blog/User/Login/login",			dataType: "json",			data: {"user":admin_name,"pwd":admin_pass,"authcode":authcode},			beforeSend: function(){				$('<div id="msg" />').addClass("loading").html("{:L('login_')}").css("color","#FF0000").appendTo('.login_btn');			},			success: function(json){				if(json.success==1){				    $("#msg").remove();					$('<div id="div-y" />').addClass("notice_y").html(json.msg).appendTo('.div_c').fadeOut(3000);					location.href="{:U('Index/index')}";				}else{					$("#msg").remove();					$('<div id="div-b" />').addClass("notice").html(json.msg).css("color","#FF0000").appendTo('.div_c').fadeOut(3000,function(){					return false;					});					//location.href="{:U('Login/index')}";					//return false;				}			}		});
ログイン後にコピー

以下は空の PHP コードです
//登陆验证	  public function login(){	    if(!IS_POST){		 $array['msg']='页面不存在';		 $array['success']=0;		 $this->ajaxReturn($array);		}		$user = I('admin_name','','htmlspecialchars','trim');		$pass = I('pwd','');		$verify = I('authcode','','htmlspecialchars','trim');		//检测验证码		if(!check_verify($verify)){		 $array['msg']=L('login_vcode_error');		 $array['success']=0;		 $this->ajaxReturn($array);		}		$admin = M('admin')->where(array('username'=>$user))->find();		//dump($admin);		//判断密码是否正确		if(!$admin || ($admin['password']) != md5($pass)){		 $array['msg']=L('login_fail');		 $array['success']=0;		 $this->ajaxReturn($array);		}		//判断是否被锁定	    elseif($user['IsLock']==1){		 $array['msg']=L('login_IsLock');		 $array['success']=0;		 $this->ajaxReturn($array);		}	  }
ログイン後にコピー

ログインをクリックすると検証できますが、ユーザー名とパスワードは常に「ログインしています...」というプロンプトが表示されます


ディスカッション (解決済みの解決策)

thinkPHP では、js で U メソッドを使用できますか? ? location.href="{:U('Index/index')}";
tp3.0版では使えなかったと記憶しています。

thinkPHP では、js で U メソッドを使用できますか? ? location.href="{:U('Index/index')}";
tp3.0版では使えなかったと記憶しています。


私のTPバージョンは3.2.3で、エラーはありません

主な問題は、バックグラウンドがajaxによって送信された値を受信できないことです。それらはすべて null 値です。


thinkPHP では、js で U メソッドを使用できますか? ? location.href="{:U('Index/index')}";
tp3.0版では使えなかったと記憶しています。


現時点では使用できるようです。私の TP バージョンは 3.2.3 で、エラーはありません



ページの非表示フォームに {:U('Index/index')} を保存してみてください
< ;input type="hidden" value="{:U('Index/index')}" id="myvalue"/>
次に、location.href=$('#myvalue').value; も追加します。エラー関数を書いて見てください

                    error: function(XMLHttpRequest, textStatus, errorThrown) {                        alert(XMLHttpRequest.status);                        alert(XMLHttpRequest.readyState);                        alert(textStatus);                    },
ログイン後にコピー
ログイン後にコピー


エラー関数も書いて見てください

                    error: function(XMLHttpRequest, textStatus, errorThrown) {                        alert(XMLHttpRequest.status);                        alert(XMLHttpRequest.readyState);                        alert(textStatus);                    },
ログイン後にコピー
ログイン後にコピー


こんにちは、それに、現在の主な問題は、バックグラウンドが ajax によって渡された値、データを受信できないことです。 {"user": admin_name,"pwd":admin_pass,"authcode":authcode}、この値はコントローラーで読み取ることができません。


1. データが送信されていないことはどのようにしてわかりますか? 2. 対象のURLは正しく書かれていますか?

/thinkphp/blog/User/Login/login? ? ?


1. データが送信されていないことはどのようにしてわかりますか?

2. 対象のURLは正しく書かれていますか?

/thinkphp/blog/User/Login/login? ? ?

確認コードは送信時に確認できますが、パスワードの確認になると、常にログインに失敗したことを示すメッセージが表示されます。

ターゲット URL に対して U 関数を使用します

データテーブルのパスワードフィールドは md5 以降の 32 ビットですか?

データテーブルのパスワードフィールドはmd5以降の32ビットですか?

はい、フォーム送信を使用してこれをテストしました

1. データが送信されていないことはどのようにしてわかりますか?

2. 対象のURLは正しく書かれていますか?

/thinkphp/blog/User/Login/login? ? ?

私のプロジェクト ディレクトリは User です。これはこのユーザーに関連していますか?

パスワードの検証に関しては、常に検証できます。 );
まず成功コールバック関数を削除します。上記の 3 つの変数はコントローラーで出力できますか? ?そうでない場合は、コードの js 部分を確認してください。可能であれば、ログイン コードを確認してください。 。 。認証コードは認証できるとのことですが、認証パスワードが間違っているのでしょうか? ?

1. データが送信されていないことはどのようにしてわかりますか?
2. 対象のURLは正しく書かれていますか?
/thinkphp/blog/User/Login/login? ? ?

ブラウザのデバッグを使用して、要求された URL アドレスが正しいかどうかを確認します。


アドレスはすべて向かい合っています。最終的に jqeury コードとコントローラーコードをすべて書き直しましたが、問題はありませんでした。思い出したのですが、js コード データ:{} とコントローラーの間に違いがある可能性があります。プロジェクト パスは User であり、JSON 内に別のユーザーが存在する可能性があります。この 2 つの間に競合があるのか​​もしれません。皆様、ご協力ありがとうございました。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート