1. 程式人生 > >【HTML】用ajax方法獲取不到return返回值

【HTML】用ajax方法獲取不到return返回值

兩個錯誤寫法會導致這種情況:
A、ajax未用同步;B、在ajax方法中直接return返回值。

下面列舉了三種寫法,如果想成功獲取到返回值,參考第三種寫法:

方法一:未獲得返回值

/**
 * 方式:(1)同步呼叫 (2)在ajax函式中return值
 * 結果:返回 1-----未成功獲取返回值
 * 失敗原因:ajax內部是一個或多個定義的函式,ajax中return返回值,
 * 返回到ajax定義函式,而不是返回到ajax外層的函式checkAccount1()
 */
function checkAccount1(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : false,
        success : function(data) {
            return 2;
        }
    });
    return result;
}

方法二:未獲得返回值

/**
 * 方式:(1)非同步呼叫 (2)在ajax對全域性變數進行設值 (3)ajax函式外將變數return
 * 結果:返回 1。未成功獲取返回值
 * 失敗原因:ajax請求和後面的return result語句非同步執行,
 * 導致return result比result = 2先執行並返回result的值
 */
function checkAccount2(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : true,
        success : function(data) {
            result = 2;
        }
    });
    return result;
}

方法三:成功獲得返回值

/**
 * 方式:(1)同步呼叫 (2)且在ajax對全域性變數進行設值 (3)ajax函式外將變數return
 * 結果:返回 2。成功獲取返回值
 * 成功原因:先執行result = 2;再往下執行return result;
 */
function checkAccount3(){
    var result = 1;
    $.ajax({
        url : 'test.do',
        type : "post",
        data : {},
        async : false,
        success : function(data) {
            result = 2;
        }
    });
    return result;
}

相關推薦

HTMLajax方法獲取return返回

兩個錯誤寫法會導致這種情況:A、ajax未用同步;B、在ajax方法中直接return返回值。下面列舉了三種寫法,如果想成功獲取到返回值,參考第三種寫法:方法一:未獲得返回值/** * 方式:(1)同步呼叫 (2)在ajax函式中return值 * 結果:返回 1----

jquery的ajax方法獲取return返回

又遇到這個問題了,還好及時發現了。之前也遇見過這個問題,困惑了很久。 這次有經驗了,一下就發現了存在的問題,自此記錄一下,下次不在犯了。 轉自:https://www.cnblogs.com/terryMe/p/6130309.html 小哥哥描述得很清楚: 如果jqu

extjs使用AJAX呼叫方法結束返回問題解決

   ExtJS中通過Ext.Ajax.request請求想返回值,可是總獲取不到,只有一種情況使用debugger才行,後來通過網上說Ext.Ajax.request預設是非同步的改成同步的就OK了,需要加async:false屬性,測試發現還是行不通;又使用全域性變數

LoadRunner檢視指令碼請求日誌和伺服器返回方法

【LoadRunner】檢視指令碼請求日誌和伺服器返回值方法 1、  檢視所有請求日誌和請求響應資訊: 採用LoadRunner工具Run-time settings或按鍵盤F4,選擇LOG設定,選擇

基礎函數的聲明&返回

com 高效率 ima tar 函數類 pac inf mage ase 以加減乘除運算為例 /* 函數的一般形式: 類型標示符 函數名(形式參數,形式參數...){ 函數體 } 類型表示符 為 該函數返回值的類型 不返回任何值的函數,返回值類型可以用voi

原創Postman 如何處理上一個介面返回作為下一個介面入參?

今天做介面測試,有一個介面的引數是一個校驗 token,會實時更新,開發提供了一個單獨返回實時 token 的介面,所以就需要在功能介面使用時呼叫 token 介面的返回值,作為功能介面的引數來使用。 網上搜了一下,都沒有現成的使用說明,剛才研究出來了,就記錄

ajax提交form並將返回顯示在網頁

簡單說一下做的是什麼:其實就是一個篩選器,當然實際內容比這個多,所以如果採用引數的方法進行傳遞,非瘋掉不可,所以想要用form的形式進行;解決方案:ajax+form的submit麻煩:這個方案也有麻煩——就是雖然在前端寫的程式碼少了,但是後端程式碼多寫了,而且複雜程度其實比

遞歸方法無法使用 return 返回

遞歸 return背景計算樹級結構數據,終極節點。使用遞歸計算,獲得3級子菜單問題無法獲取子節點分析監控遞歸,是正確的。已經識別出需要的子菜單解決方法外聲明變量,結果賦值到外圍變量,即可正常使用原因使用return無法將結果帶出遞歸總結遞歸,請拒絕reurn拿值。遞歸方法無法使用 return 返回值

mysql實現隨機獲取幾條數據的方法

sele log rom net nbsp tab article .net sql sql語句有幾種寫法 1:SELECT * FROM tablename ORDER BY RAND() LIMIT 想要獲取的數據條數; 2:SELECT *FROM `table`

CSS屬性選擇器來拼接HTML的DNA

原文連結:www.smashingmagazine.com/2018/10/att… CSS屬性選擇器非常神奇,它們可以幫你避免新增數不勝數的類名,從另一方面來指出你程式碼裡的一些問題。但是大家不用慌,雖然屬性選擇器複雜且強大,但是很易於學習和使用。在這篇文章,我們將討論它們是如何執行起來的,再教大家

JSchecked實現複選框全選和全

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <title>無標題文件</title>

FreeMarkerajax更好的展示資料的工具

一、什麼是FreeMarker Freemarker是一個模板引擎,基於模板生成文字輸出的通用工具,是一個java類庫,程式設計師可以嵌入他們所開發產品的元件。 Freemarker主要用於MVC中的view層,生成html展示資料給客戶端,可以完全替代jsp。  Free

Htmldiv 載入 html頁面的方法

做網頁的單頁面應用時,需要在一個HTML的Div元素中載入另一個HTML頁面,以前有一種方法就是用iframe,舉例如下:(親測可行) <div class="main-container" id="main" style="width:99%"> <iframe src="i

Htmldiv 加載 html頁面的方法

加載 nal isa cnblogs 有一種 border jquery log pan 做網頁的單頁面應用時,需要在一個HTML的Div元素中加載另一個HTML頁面,以前有一種方法就是用iframe,舉例如下:(親測可行) <div class="main-con

jquery通過ajax方法獲取本地json檔案執行success回撥

//a.json { list:{ createtime:"2018/11/05 16:45:22", status: 0, name: "aa", price: "188.00", num: "2", img: "1.jpg" } }

html網頁縮小,頁面的元素會改變位置

       不做那種響應式,而是做成無論網頁怎麼縮小,裡面的元素是不會改變位置的,一般頁面大小改變會有些元素位置。 只需加一個屬性: viewport屬性控制視窗大小 <meta name="viewport" content="width=1024(這裡寫你

cmdWin10家庭版找到 gpedit.msc (組策略)的解決方法

目錄 一、建立cmd檔案 (1)新建一個檔名為“gpedit.txt”的txt文字文件: (2)文字中寫入以下內容: @echo off pushd "%~dp0" dir

PBPowerBuilder中的一些太常用的方法

25、Shutdown from application [PB external function declaration] FUNCTION boolean ExitWindowsEx(ulong uFlags, long dwReserved ) & LIBRARY 'user32.dll' [

jquery的ajax方法獲取return返回的正確姿勢

如果jquery中,想要獲取ajax的return返回值,必須注意兩方面,ajax的同步非同步問題,在ajax方法裡面還是外面進行return返回值。下面列舉了三種寫法,如果想成功獲取到返回值,參考第三種寫法:(即,前面兩種是反面教材)/** * 方式:(1)同步呼叫 (

JavaScript使用ajax請求,進行html的資料組裝

author:咔咔 wechat:fangkangfk   這裡放一個組裝資料的案例,不會的可以參考一下 $.ajax({ type:"post", url:"{url(Banner/index)}",//對應contro