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对象。

发布了7 篇原创文章 · 获赞 2 · 访问量 682

猜你喜欢

转载自blog.csdn.net/weixin_43421676/article/details/104061685
今日推荐