js调用webservice jquery版

支持android webview调用,请求wsdl使用异步,加timeout配置,否则在服务未启用时,页面会卡死,很长时间(几分钟)async:true,timeout:2000(毫秒)

调式android webview页面小技巧:USB连接手机,在PC edge浏览器(chrome浏览器是chrome://)中键入edge://inspect即可,找到webview,点击inspect,查看网页输出

(2021-07-02)优化,解决DataSet多个table,无数据行表返回空问题,减少前端非空判断,直接判断表行数即可。

/*****************************************************************************\

 Javascript "SOAP Client" library
 
 @version: 2.4 - 2007.12.21
 @author: Matteo Casati - http://www.guru4.net/
 
\*****************************************************************************/

function SOAPClientParameters() {
	this._pp = new Array();
	this.add = function(name, value) {
		this._pp[name] = value;
		return this;
	}
	this.all = function() {
		return this._pp;
	}
	this.toXml = function() {
		var xml = "";
		for (var p in this._pp) {
			switch (typeof (this._pp[p])) {
				case "string":
				case "number":
				case "boolean":
				case "object":
					xml += "<" + p + ">" + SOAPClientParameters._serialize(this._pp[p]) + "</" + p + ">";
					break;
				default:
					break;
			}
		}
		return xml;
	}
}

SOAPClientParameters._serialize = function(o) {
	var s = "";
    if(o === null || o === undefined) return s;
	switch (typeof (o)) {
		case "string":
			s += o.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); break;
		case "number":
		case "boolean":
			s += o.toString(); break;
		case "object":
			// Date
			if (o.constructor.toString().indexOf("function Date()") > -1) {

				var year = o.getFullYear().toString();
				var month = (o.getMonth() + 1).toString(); month = (month.length == 1) ? "0" + month : month;
				var date = o.getDate().toString(); date = (date.length == 1) ? "0" + date : date;
				var hours = o.getHours().toString(); hours = (hours.length == 1) ? "0" + hours : hours;
				var minutes = o.getMinutes().toString(); minutes = (minutes.length == 1) ? "0" + minutes : minutes;
				var seconds = o.getSeconds().toString(); seconds = (seconds.length == 1) ? "0" + seconds : seconds;
				var milliseconds = o.getMilliseconds().toString();
				var tzminutes = Math.abs(o.getTimezoneOffset());
				var tzhours = 0;
				while (tzminutes >= 60) {
					tzhours++;
					tzminutes -= 60;
				}
				tzminutes = (tzminutes.toString().length == 1) ? "0" + tzminutes.toString() : tzminutes.toString();
				tzhours = (tzhours.toString().length == 1) ? "0" + tzhours.toString() : tzhours.toString();
				var timezone = ((o.getTimezoneOffset() < 0) ? 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
使用 AJAX 调用 WebService 有以下几个步骤: 1. 在 HTML 页面中引入 jQuery 库(如果项目中已经引入了 jQuery,则可以跳过此步骤)。 ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> ``` 2. 在 JavaScript 中编写 AJAX 调用代码。下面是一个示例: ```javascript $(document).ready(function() { $("#btnSearch").click(function() { var keyword = $("#txtKeyword").val(); $.ajax({ type: "POST", url: "WebService.asmx/GetSearchResult", data: "{'keyword':'" + keyword + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { $("#searchResult").html(data.d); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); } }); }); }); ``` 解释一下上面代码中的各个参数: * `type`:请求方式,可以是 "GET" 或 "POST"。 * `url`:WebService 的地址,需要根据实际情况修改。 * `data`:请求参数,需要按照指定的格式传递,这里使用的是 JSON 格式。 * `contentType`:请求数据类型,需要设置为 "application/json; charset=utf-8"。 * `dataType`:响应数据类型,需要设置为 "json"。 * `success`:请求成功后的回调函数。 * `error`:请求失败后的回调函数。 3. 在 WebService 中编写对应的方法。例如,上面代码中调用的是 `GetSearchResult` 方法,那么在 WebService 中就需要定义这个方法,代码如下: ```csharp [WebMethod] public string GetSearchResult(string keyword) { // 根据关键字查询数据库,并返回查询结果 return "查询结果"; } ``` 注意,方法需要添加 `[WebMethod]` 标记,同时需要设置返回值类型和参数类型。 这样就完成了 AJAX 调用 WebService 的过程。需要注意的是,由于 AJAX 调用是异步的,因此需要在回调函数中更新页面的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闪耀星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值