繁体   English   中英

ExtJS,OpenLayers:在发送之前修改URL协议

[英]ExtJS, OpenLayers: modify url protocol before it is sent

我正在尝试从formPanel内的组合框获取一个值,以将其传递到协议网址(openlayers.protocol.http)。 这是我要获取的基于http://jsbin.com/ireqed/2/edit的url(在我要在组合框中选择“汽车”并在文本字段中输入“ cool”的情况下)的网址:

http://www.mop.org/fs/cars?format=GeoJSON&comments__ilike=cool&queryable=comments

经过测试之后,在组合框中选择一个值并在文本字段中输入单词后,我终于可以得到想要的URL(如上所述)。

要在formPanel中的协议中发送此新URL,我在搜索按钮的处理函数中使用了autoLoad调用,我认为这是发送url,但协议本身(即XMLHttpRequest.js)并没有捕获该URL,但ExtJS 。 因此,GeoJSON输出显示在formPanel中。 我附加了三个PNG来显示此内容: 按下“搜索”按钮之前的formPanel 按下“搜索”按钮后的formpanel 在萤火虫中输出

在Firebug中,一旦按下“搜索”按钮,就会调用两个URL,第一个是我要在协议的URL中替换的URL,但是它进入了ext-base.js,这是错误的位置。 第二个,我实际上不知道为什么发送,转到正确的位置XMLHttpRequest.js,但是不应该发送。

因此,在必须首先发送url之前,我需要更改它,该怎么办? 顺便说一句,在我看来,它正在替换属于ExtJS的不存在的URL,请帮助,谢谢

更新#1:

越来越近...因为添加了OpenLayers.loadURL(myurl, {}, null, function(response){}); 在处理程序函数中,将URL发送到XMLHttpRequest.js(在正确的位置),但是立即将另一个URL(从formpanel)发送到了同一位置,这覆盖了正确的位置,有没有办法为openlayers添加一些时间.loadurl函数? 我知道此函数异步工作(这就是为什么它比第二个更快并且要首先提交的原因),有没有办法覆盖第二个? 发送了两个网址,第一个是正确的

解决方案是将协议从formPanel之外获取,仅使用“ protocol.options.url = newUrl;”, 此处提供完整说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM