第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

為什么這里傳給后臺的data不用json格式,如果用json格式,該怎么寫

document.getElementById("save").onclick?=?function()?{?
	var?request?=?new?XMLHttpRequest();
	request.open("POST",?"server.php");
	var?data?=?"name="?+?document.getElementById("staffName").value
	??????????????????+?"&number="?+?document.getElementById("staffNumber").value?
	??????????????????+?"&sex="?+?document.getElementById("staffSex").value?
	??????????????????+?"&job="?+?document.getElementById("staffJob").value;
	request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
							
	request.send(data);							
	request.onreadystatechange?=?function()?{
		if?(request.readyState===4)?{
			if?(request.status===200)?{?
				document.getElementById("createResult").innerHTML?=?request.responseText;
			}?else?{
				alert("發(fā)生錯誤:"?+?request.status);
			}
		}?
	}
}


正在回答

2 回答

以下是W3Cschool上對send 方法的解釋:

http://img1.sycdn.imooc.com//579f2fe900012af307830247.jpg

當(dāng)send方法被用作post 請求時,需要接收string類型的參數(shù)。這就是為什么代碼中要拼出一個很長的字符串用作參數(shù)。如果想寫成JSON格式比如

var?data={
????"name":?document.getElementById("staffName").value
????...
????}

那么data還是不能被用作send的參數(shù),因?yàn)镴S中變量的類型是它所指向的目標(biāo)的類型,所以以上代碼中data的類型是 Object,并不為send方法所接受。

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

newsudhc3634140 提問者

請問那 如果上傳圖片,下載圖片要怎么解決呢?json和string都是文本而已,如果從服務(wù)端加載圖片的話呢? 謝謝~~
2016-08-01 回復(fù) 有任何疑惑可以回復(fù)我~

我覺得一般不需要用ajax從服務(wù)器獲取圖片。用<img>標(biāo)簽,瀏覽器解析到這個標(biāo)簽就會自動下載圖片并進(jìn)行渲染。

至于上傳圖片,我所知道的是出于安全考慮,JS是不能直接操作本地的文件。其他的不是很清楚,所以我去查了一些資料:

https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

總結(jié)一下:

  • 可以用FormData 對象用Ajax實(shí)現(xiàn)文件上傳。

FormData support starts from following desktop browsers versions. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+

  • 限制是這是XHR2 標(biāo)準(zhǔn),只有部分瀏覽器支持.實(shí)現(xiàn)代碼:

var?formData?=?new?FormData();
formData.append("username",?"Groucho");
formData.append("accountnum",?123456);
formData.append("userfile",?fileInputElement.files[0]);
var?request?=?new?XMLHttpRequest();
request.open("POST",?"submitform.php);
request.send(formData)

還有一種實(shí)現(xiàn)不用formData對象,而是用絕大部分瀏覽器都支持的<form> 標(biāo)簽和<iframe>來實(shí)現(xiàn)類似Ajax的效果,即上傳文件而不刷新頁面。我個人覺得和ajax沒有很大關(guān)系可作為參考

http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html#


2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消
Ajax全接觸
  • 參與學(xué)習(xí)       224774    人
  • 解答問題       708    個

本課程通過一個案例,講解Ajax的相關(guān)概念原理實(shí)現(xiàn)方式和應(yīng)用

進(jìn)入課程

為什么這里傳給后臺的data不用json格式,如果用json格式,該怎么寫

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號