JavaScript.JQurey.Ajax.Post

需求

有一個業務要在前端按鈕事件利用ajax發送Post請求服務端數據進行比對。

代碼

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<input type="button" value="異步請求服務器" onclick="alertParam()"/>
		<script type="text/javascript">
				function alertParam(){
							var param = {};
							var filters = {};
							// var json = '{"filters":{"sapCode":"2013","materialsNo":"'+'859928081'+'","warehousename":"'+'A001'+'"},"pageNum":"1","pageSize":"10"}';
							filters['sapCode'] = '2013';
							filters['materialsNo'] = '859928081';
							filters['warehousename'] = 'A001';
							param['filters'] = filters;
							param['pageNum'] = '1';
							param['pageSize'] = '10';
							//轉換jsons
							var sendJson = JSON.stringify(param);
							// var sendJson = eval('('+json+')');
							alert(sendJson);
							console.log(sendJson);
				var oReq = new XMLHttpRequest();//創建實例對象
				oReq.open("POST", "http://12.12.123.1234:12345/stock/getStockList");// 傳遞的文件 
				oReq.setRequestHeader('Content-Type','application/json');//post 傳值必寫
				oReq.send(sendJson);// 發送
				oReq.onreadystatechange = function () {
					if (oReq.readyState == 4) {
						if (oReq.status == 200) {
							var rspJson =JSON.parse(oReq.responseText);
							var value = rspJson.value;
							var pageInfoList = value.pageInfoList[0];
							var areaCode = pageInfoList.areaCode;
							var materialNo = pageInfoList.materialNo;
							var enableNum = pageInfoList.enableNum;
							var isThreeGuaranteesNegative = pageInfoList.isThreeGuaranteesNegative;
							alert('庫區'+areaCode+'.物料編碼'+materialNo+'.可用庫存'+enableNum+'.是否允許負庫存'+isThreeGuaranteesNegative);
// 							if(領用數量<enableNum||isThreeGuaranteesNegative==1){
// 								允許創建;
// 							}else{
// 								不允許創建;
// 							}//end of 庫存判斷
						}else{
							alert("status="+oReq.status+",readyState="+oReq.readyState);
						}//end of ajax
					}
				}
			}
//向備件管理平臺發送ajax請求
function qmsAjaxPost(){
		var param = {};
		var filters = {};
		var json = '{"filters":{"sapCode":"2013","materialsNo":"'+'859928081'+'","warehousename":"'+'A001'+'"},"pageNum":"1","pageSize":"10"}';
		filters['sapCode'] = '2013';
 		filters['materialsNo'] = '859928081';
 		filters['warehousename'] = 'A001';
		param['filters'] = filters;
		param['pageNum'] = '1';
		param['pageSize'] = '10';
		alert(json);
		
		var oReq = new XMLHttpRequest();//創建實例對象
		oReq.open("POST", "http://12.12.123.1234:12345/stock/getStockList");// 傳遞的文件 
		oReq.setRequestHeader('Content-Type','application/json');//post 傳值必寫
		oReq.send(json);// 發送
		oReq.onreadystatechange = function () {
					if (oReq.readyState == 4) {
						if (oReq.status == 200) {
							var rspJson =jQuery.parse(oReq.responseText);
							// var rspJson = oReq.responseText;
							var value = rspJson.value;
						
							var pageInfoList = value.pageInfoList[0];
							
							var areaCode = pageInfoList.areaCode;
							var materialNo = pageInfoList.materialNo;
							var enableNum = pageInfoList.enableNum;
							var isThreeGuaranteesNegative = pageInfoList.isThreeGuaranteesNegative;
							alert('庫區'+areaCode+'.物料編碼'+materialNo+'.可用庫存'+enableNum+'.是否允許負庫存'+isThreeGuaranteesNegative);
							if(crmForm.all.new_qty.DataValue<enableNum||isThreeGuaranteesNegative==1){
								crmForm.all.new_name.SetFocus();
							}else{
								alert("可用庫存不足,請確認庫存數量!");
								event.returnValue=false;  //撤回
							}//end of 庫存判斷
						}else{
							alert("status="+oReq.status+",readyState="+oReq.readyState);
						}//end of ajax
					}
			}
		}

			</script>
	</body>
</html>

值得一提的

1.JSON

json方法
大部分的瀏覽器都支持這兩種方法,但在Crm4.0系統中行不通。
json.js

2.eval

eval('(' + jsonstr + ')');
可以將json字符串轉換成json對象,注意需要在json字符外包裹一對小括號 。

3.jQuery.parse()

var rspJson =jQuery.parse(oReq.responseText);

可以將json字符串轉換成json對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章