[ ArcGIS 10 API for Javascript 系列 ] - 默认的HTTP请求方式
ArcGIS API for JavaScript默认方式HTTP请求是GET方式, 而不是Post方式。
当HTTP为长URL请求时,GET将无法使用,而必须采用Post的方式。Esri默认的http请求方式是GET。对于这种应用,如:以缓冲后的几何为参数的QueryTask,此情况下就需要使用POST的Proxy来处理这种情况。
具体Proxy Page的使用可以参考:http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/gmaps/help/google_start.htm#topics/ags_proxy.html ,一直有个疑问为什么Esri不使用post方式做为http请求,而使用get方式。
初步原因:
1、缓存:浏览器对GET方式请求的资源可以进行缓存,而对POST方式不缓存资源。
2、跨域访问:使用script、iframe等方式跨域,都是属于GET方式的http请求,而使用Xhr方式的Ajax是无法实现跨域。这样POST无法跨域。
3、header头:POST方式 发送相同数据的请求,其header要比GET方式要大的多。
综合上面各种因素,考虑到ArcGIS Server实际的应用场景。Esri选择Get方式为Http默认的请求方式也在情理之中。