《javascript高级程序设计》学习笔记三
http请求
浏览器直接从javascript中初始化HTTP请求并获取结果
XML HTML请求本质上是添加了额外的用于发送和接收XML代码的功能的普通HTTP请求
要再IE中重新创建XML HTTP请求对象 还需要使用activeXObject
var oRequest = new ActiveXObject("Microsoft.XMLHTTP);
创建好XML HTTP请求对象后,可用open方法来指定要发送的请求,这个方法有三个参数:要发送的请求的类型(get、post或者其他受服务器支持的http方法)、请求的URL以及表示请求是否应该以异步方式发送的布尔值(与XML DOM的load方法一样)
oRequesr.open("get","example.txt",false);
打开这个请求之后,还要用send方法将其发送出去,一般用null做其参数
oRequest.send(null);
使用http首部
每个http请求发送时都包含一组带有额外信息的首部,只对开发者有用,所以XML HTTP请求对象提供了获取和设置他们的方法
getAllResponseHeaders方法:可以返回包含所有响应的HTTP首部信息的字符串
getResponseHeader方法:获得指定的某个首部,参数为要获取首部的名称
setRequestHeader:设置XML HTTP请求的首部信息
进行get请求
每次在浏览器中输入url并且打开页面时,就是向服务器发送一个get请求
get请求的参数是用问号追加到url的结尾,后面跟着用&号连接起来的名称/值
每个名称和值都必须在编码后才可以用在url中(javascript中可以用encodeURLComponent()进行编码)
URL最大长度为2048字符,问号后面的内容称为查询字符串,这些参数可以在服务器端的页面中读取
要用XML http请求对象发送一个get请求,只需将url(包含所有参数)传入open方法,同时第一个参数设置为get
进行post请求
一般来说,post请求用于在表单中输入数据后的递交过程,因为可以发送的数据更多(2GB)
post参数也需要编码并用&进行分隔,尽管这些参数不会被附加到url上,发送post请求时要将参数传入send方法
发送之前还需要加一个设置首部:
oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
然后就可以send了
liveConnect请求:与java相关
只能http请求
//先不看了 用到了再看
////////////////////////////////////////////////////////////////////////////////////////////////////
web服务
可以讲web服务看成是函数调用,只不过这个函数存在于某个服务器上,而调用在客户端上进行。这就要求在客户端和服务器之间发送接收消息。
这些消息都采用SOAP格式,这种格式是基于XML的对web服务消息的包装器。SOAP消息一般用标准的HTTP请求来进行传输,同时加入了一些特殊的请求首部:
SOAPAction:如果存在多种可能的动作则需要指出
content-type要设置为text/xml
SOAP消息本身是包在信封中的,这个信封用于向服务器传输web服务器的调用,或从服务器传输web服务调用的结果
开发人员格式化消息就需要用到WSDL
WSDL web服务描述语言
用于描述web服务的能力、格式和其他重要消息,定义了web服务提供的不同操作,操作是指可以从给定服务中调用的特定函数
wsdl文件的基本内容
类型:web服务所使用的类型
消息:操作的输入输出
端口类型:web服务上可用的操作
绑定:定义用于每个操作的发送和接收的消息的格式
服务:访问web服务操作的方式
文件的预期应用时为程序提供调用web服务的足够的信息
。。。。
//后面的暂时也先不看了
//大概能明白了,具体细节方面的问题用了再看
//感觉javascript语言本身不是很难,但是要注意的地方很多,零碎的地方要用到了才注意的到,接下去多看点实例