在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ ajax上傳圖片獲取圖片路徑

ajax上傳圖片獲取圖片路徑

var formData = new FormData();
formData.append("image", document.getElementById("FileUpload").files[0]);
$.ajax({

url: url,
type: 'post',
data: formData,
cache: false,
/**
*必須false才會自動加上正確的Content-Type
*/
contentType: false,
/**
* 必須false才會避開jQuery對 formdata 的默認處理
* XMLHttpRequest會對 formdata 進行正確的處理
*/
processData: false,
success: function (data) {
    console.log(data)
    if (data.code == '200') {
        this.imageUrl = data.data
    }
}

})
在ajax外獲取不到路徑,會出現(xiàn)this.imageUrl = ''
這是為什么呢?誰也遇到過類似的問題?

回答
編輯回答
久礙你

Ajax是異步機制

    if (data.code == '200') {
        this.imageUrl = data.data
    }
    

這里的this已經指向了回調函數 對外部是不生效的
你可以改成:

var imageUrl = '';
//Js默認寫在文件中的變量是全局變量

$.ajax({//......省略
    if (data.code == '200') {
        imageUrl = data.data
        console.log(imageUrl); // 輸出'http://fool.jpg'
    }
   
//...略
console.log(imageUrl); // 輸出''
// 這里依然獲取不到 是因為 雖然代碼在下面,但是執(zhí)行的時間 要早于上面的回調函數
// 如果做什么操作記得寫在ajax的回調里
2017年11月6日 11:02
編輯回答
離魂曲

ajax有延時的,在外面當然獲取不到。

2017年5月16日 04:01
編輯回答
話寡

你可以定義個全局變量,把獲取到的路徑賦值給全局變量啊

2017年11月17日 05:02