YAHOO.util.Connect
XMLHttpRequest的封装,关注跨浏览器和请求状态等问题
自定义事件触发过程:
startEvent
completeEvent
successEvent、failureEvent、uploadEvent
如果调用了abort:
startEvent
abortEvent
failureEvent
YAHOO.util.Connect.asyncRequest(method, uri, callback, postData) 发起异步请求
根据是否需要上传获取相应类型的连接对象;
如果需要上传,则调用uploadFile并返回;
如果只是需调用了setForm而没有上传文件的需要,则把_sFormData、postData和uri根据需要拼接起来;
默认会在XHR连接上加上头信息“X-Requested-With:XMLHttpRequest”,表明这个请求是通过Connection Manager发出的;
默认会在使用post方法的时候加上头信息“Content-Type :application/x-www-form-urlencoded ”;
YAHOO.util.Connect.setForm(formId, isUpload, secureUri) 收集表单中的字段信息构造字符串
如果isUpload==true,创建iframe;
如果遇到select元素,则遍历它的options,找到selected==true的option;在IE,用option.attributes['value'].specified,其他用 option.hasAttribute('value')判断是否设置了value属性,如果没设置则用text代替value进行字符串组合 ;
radio和checkbox都是用checked判断;
如果是submit而且是第一个检测到的submit:如果_hasSubmitListener存在,则取_submitElementValue中的值填入字符串 ,否则,把它的name和value加入字符串。就是说如果在加载的时候_hasSubmitListener===false,表单中第一个被检测到的submit的值会被提交。_hasSubmitListener主要用户解决一个表单中有多个submit的情况。
由于此方法开始时会调用resetFormState,所以它不能保存一个以上的表单信息。
YAHOO.util.Connect.a
自定义事件触发过程:
startEvent
completeEvent
successEvent、failureEvent、uploadEvent
如果调用了abort:
startEvent
abortEvent
failureEvent
YAHOO.util.Connect.asyncRequest(method, uri, callback, postData) 发起异步请求
根据是否需要上传获取相应类型的连接对象;
如果需要上传,则调用uploadFile并返回;
如果只是需调用了setForm而没有上传文件的需要,则把_sFormData、postData和uri根据需要拼接起来;
默认会在XHR连接上加上头信息“X-Requested-With:XMLHttpRequest”,表明这个请求是通过Connection Manager发出的;
默认会在使用post方法的时候加上头信息“Content-Type :application/x-www-form-urlencoded ”;
YAHOO.util.Connect.setForm(formId, isUpload, secureUri) 收集表单中的字段信息构造字符串
如果isUpload==true,创建iframe;
如果遇到select元素,则遍历它的options,找到selected==true的option;在IE,用option.attributes['value'].specified,其他用 option.hasAttribute('value')判断是否设置了value属性,如果没设置则用text代替value进行字符串组合 ;
radio和checkbox都是用checked判断;
如果是submit而且是第一个检测到的submit:如果_hasSubmitListener存在,则取_submitElementValue中的值填入字符串 ,否则,把它的name和value加入字符串。就是说如果在加载的时候_hasSubmitListener===false,表单中第一个被检测到的submit的值会被提交。_hasSubmitListener主要用户解决一个表单中有多个submit的情况。
由于此方法开始时会调用resetFormState,所以它不能保存一个以上的表单信息。
YAHOO.util.Connect.a