插件 jQuery.Soap 中文API文档

🌙
手机阅读
本文目录结构

插件 jQuery.Soap 中文API文档 https://github.com/doedje/jquery.soap

源码 & 下载

  • Github地址:address
  • 源码下载: -
  • 效果演示: -

适用场景

此脚本使用$ .ajax发送SOAP:Envelope。它可以将XML DOM,XML字符串或JSON作为输入,并且响应也可以作为XML DOM,XML字符串或JSON返回。

插件特点

jQuery Soap

file: jquery.soap.js 
version: 1.7.3

用于使用SOAP与Web服务进行通信的jQuery插件。

此脚本使用$ .ajax发送SOAPEnvelope。它可以将XML DOM,XML字符串或JSON作为输入,并且响应也可以作为XML DOM,XML字符串或JSON返回。

给所有贡献$ .soap的人们带来了巨大的威力!

Let’s $.soap()!

注意:有关问题,错误,问题或以下任何其他问题,请参阅我的说明。我真的更喜欢你在github上使用问题跟踪器而不是发送邮件….

基本用法

$.soap({
	url: 'http://my.server.com/soapservices/',
	method: 'helloWorld',

	data: {
		name: 'Remy Blom',
		msg: 'Hi!'
	},

	success: function (soapResponse) {
		// do stuff with soapResponse
		// if you want to have the response as JSON use soapResponse.toJSON();
		// or soapResponse.toString() to get XML string
		// or soapResponse.toXML() to get XML DOM
	},
	error: function (SOAPResponse) {
		// show error
	}
});

会导致

$.soap({
	url: 'http://my.server.com/soapservices/',
	method: 'helloWorld',

	data: {
		name: 'Remy Blom',
		msg: 'Hi!'
	},

	success: function (soapResponse) {
		// do stuff with soapResponse
		// if you want to have the response as JSON use soapResponse.toJSON();
		// or soapResponse.toString() to get XML string
		// or soapResponse.toXML() to get XML DOM
	},
	error: function (SOAPResponse) {
		// show error
	}
});

这将发送到:url +方法 http://my.server.com/soapservices/helloWorld

依赖

jQuery - 任何版本1.9或更高版本都可以正常工作,可以回到v1​​.6

该函数 SOAPResponse.toJSON() 取决于任何第三方jQuery.xml2json插件

以前bower.json提到了由XTREEM发布的fyneworks中的一个作为依赖项但由于它将jquery 1.11作为依赖项而被删除,因此不能用于jquery 的1.9,1.10或2.x版本。

从版本1.6.7开始,当您希望使用该SOAPResponse.toJSON函数时,必须手动安装任何第三方jQuery.xml2json插件,如下面的列表中所示:

  • sparkbuzz / jQuery-xml2json
  • fyneworks

请记住,更改正在使用的插件可能会破坏已经使用的现有代码,SOAPResonse.toJSON因为所有插件都会创建具有不同结构的对象!

Promise

从版本1.3.0开始,$.soap()返回实现Promise接口的jqXHR对象。这允许您使用.done().fail().always()等于是代替使用successerror选项,你也可以这样做:

$.soap({
	...
}).done(function(data, textStatus, jqXHR) {
	// do stuff on success here...
}).fail(function(jqXHR, textStatus, errorThrown) {
	// do stuff on error here...
})

优点是这些promise回调可以让你直接访问$.ajax而不是$.soap的SOAPResponse对象提供的原始参数。

globalConfig

从版本0.9.3开始,可以调用$ .soap来设置额外的配置值。当您对$.soap进行大量调用并且厌倦了为url,namespace和error重复相同的值时,这种新方法可以派上用场:

$.soap({
	url: 'http://my.server.com/soapservices/',
	namespaceQualifier: 'myns',
	namespaceURL: 'urn://service.my.server.com',
	error: function (soapResponse) {
		// show error
	}
});

$.soap({
	method: 'helloWorld',
	data: {
		name: 'Remy Blom',
		msg: 'Hi!'
	},
	success: function (soapResponse) {
		// do stuff with soapResponse
	}
});

上面的代码与第一个示例完全相同,但是当您想要对同一个soapserver进行另一次调用时,您只需要指定更改的值:

$.soap({
	method: 'doSomethingElse',
	data: {...},
	success: function (soapResponse) {
		// do stuff with soapResponse
	}
});

但它不会阻止你调用一个完全不同的soapserver与不同的错误处理程序,例如:

$.soap({
	url: 'http://another.server.com/anotherService'
	method: 'helloWorld',
	data: {
		name: 'Remy Blom',
		msg: 'Hi!'
	},
	success: function (soapResponse) {
		// do stuff with soapResponse
	},
	error: function (soapResponse) {
		alert('that other server might be down...')
	}
});

注意:data参数用作密钥。如果在传递给$ .soap的选项中没有指定数据,则所有选项都存储在globalConfig中,将不会创建SOAPEnvelope,也不会发送任何内容。当指定方法时,将使用globalConfig,并且传递给$ .soap的所有选项都将覆盖globalConfig中的那些选项,但请记住,它们不会被覆盖!

WS-Security的

从版本1.1.0开始,jQuery.soap支持一种非常基本的WSS形式。请求此功能(问题#9)并且相当容易实现,但我没有办法正确测试它。所以如果你遇到问题,请告诉我(见下文)

$.soap({
	// other parameters..

	// WS-Security
	wss: {
		username: 'user',
		password: 'pass',
		nonce: 'w08370jf7340qephufqp3r4',
		created: new Date().getTime()
	}
});

HTTP基本授权

使用HTTPHeaders选项,实现HTTP基本授权相对简单,如下所示:

var username = 'foo';
var password = 'bar';

$.soap({
	// other parameters...

	HTTPHeaders: {
		Authorization: 'Basic ' + btoa(username + ':' + password)
	}
});

同源政策

由于同源策略,您将无法在 http://www.example.com 上有一个页面执行ajax调用($.soap在内部使用$.ajax)到 http://www.anotherdomain.com

要解决此问题,您应该在 http://www.example.com 上使用某种代理或使用CORS。

请注意,它也不允许从 http://www.example.com 转到 http://soap.example.com 甚至是 http://www.example.com:8080

基本上,当您无法使用相对URL调用webService时,您将不得不采取措施绕过相同的源策略,以下是一些帮助您的链接:

http://stackoverflow.com/questions/3076414/ways-to-circumvent-the-same-origin-policy

如果您可以完全控制从html服务的apache或nginx服务器,则设置代理的最简单方法是使用其反向代理功能:

  • Setting up a reverse proxy in apache

  • Setting up a reverse proxy in nginx

当你因为在之前的链接中使用lmgtfy.com而感到不安时,我深表歉意,我只是喜欢那个网站!;)

源码解析

参考引用

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了