首先为大家介绍,在后面一直默默无闻、劳苦功高、负责向服务器发送和接收数据的Ext.data.Connection
Connection这个类封装了页面和产生页面的服务器之间的连接,可以发送请求到配置的URL或者在请求时指定的URL。
这个类创建的请求是异步的,并且会立即返回。服务器返回的数据将会被request处理。通过使用request配置的回调函数或者requestcomplete事件的监听器来处理服务器返回的数据。
文件上传不适用正常的Ajax技术,也就是不适用XMLHttpRequests。而使用标准的表单提交 DOM格式数据,临时创建一个隐藏的iframe插入到DOM里面,当使用完成后再删除这个iframe。
服务器返回的数据会被浏览器里面创建的iframe解析。如果服务器使用的是JSON格式来发送返回的对象,那么Content-Type必须指定为 text/html这样浏览器才能将原样将文本插入到document body里面。
对于html有意义的字符必须解析成 html转义字符 例如 < 解析成 <等等。
需要了解到文件上传的类型需要设定为 multipart/form ,一些服务器技术,(尤其是JEE)可能需要一些客户化处理,为了获取参数名称和参数值。
还要注意,由于不可能通过隐藏的iframe检查返回的内容,所以通常会通过触发success来处理。
对于cors: false 这个属性来说如果设置成true那么碰到IE8或者以上的版本才会生效,使用XDomainRequest 而不是XMLHttpRequests。目的是进行跨站数据获取的功能,不过它与Firefox 3中的跨站 XMLHttpRequest的工作原理不太一样。它的跨域并不是无限制的。需要服务端返回http header中带有XDomainRequestAllowed=1才可以跨域,否则是不成功的。
Ext.Ajax.request这个方法负责发送HTTP请求到服务器。Ajax请求是异步的,这个请求会返回在获取到服务器返回之前。所以只能在回调函数中处理返回数据。
通过 options.disableCaching 来为每个请求添加一个唯一的参数来禁用缓存
这个方法会返回一个对象用来取消请求