ホームページ  >  記事  >  バックエンド開発  >  ajaxはphpの戻り値を取得できません

ajaxはphpの戻り値を取得できません

angryTom
angryTomオリジナル
2019-10-17 09:20:524658ブラウズ

ajaxはphpの戻り値を取得できません

ajax が php の戻り値を取得できない問題の解決策:

1. まず、 ajax かどうかを確認する 非同期であるため、Async は直接結果を返すことができません。

/*常见错误示例  直接在 ajax 里面return 结果*/

 function demo(){
     $.ajax({
         url : 'test.do',
         type : "post",
         data : {},
         async : false,
         success : function(data) {             return 2;
         }
     });
 }/* 结果  无返回 */

2. 次に、ajax がネストされた関数でデータを返さないことを確認します。ajax を呼び出す関数はデータを返す必要があります。

/**
 * (1)同步调用 (2)且在ajax对全局变量进行设值 (3)ajax函数外将变量return
 * 结果:返回 2。成功获取返回值
 * 成功原因:先执行result = 2;再往下执行return result;
 */
function demo1(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : false,
        success : function(data) {
            result = 2;
        }
    });
    return result;  //2
}

3. 正常に動作します。ただし、ajax を同期リクエストに変更するとブロックが発生します。ajax には非同期リクエストが必要です。

/**
  * 添加async:true.即修改为异步
 * 结果以callback的形式回调
  */
 function demo1(params,callback){
    var result = 1;
     $.ajax({
        url : 'test.do',
         type : "post",
         data : {"params ":params },
         async : true,
         success : function(data) {
             result = 2;
             callback(result);
         }
     });
 }    

demo1("Value",function(rs){
   //do someting
})

注: ajax によってリクエストされた php には、echo または print データが必要です。そうでない場合、ajax はデータを取得できません。

PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。

以上がajaxはphpの戻り値を取得できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。