openlayers - OpenLayers.Protocol.HTTP 中的 "TypeError: this.options is null"‏

标签 openlayers javascript

我正在使用 OL 2.11 和 GeoExt 1.1。测试并修改此 GeoExt 示例后: http://geoext.org/lib/GeoExt/widgets/form/FormPanel.html ,我在销毁和读取新协议(protocol)时遇到问题,我在 firebug 中收到“TypeError: this.options is null HTTP.js (line 180)”。我从第 180 行了解到的是,新选项(在新协议(protocol)中)不存在,不确定这是否是问题以及如何解决它。这是原始协议(protocol)(在 FormPanel 外部创建):

protocol = new OpenLayers.Protocol.HTTP({
    url: '/fs/',
    format: new OpenLayers.Format.GeoJSON({
        ignoreExtraDims: true,
        'internalProjection': new OpenLayers.Projection('EPSG:900913'),
        'externalProjection': new OpenLayers.Projection('EPSG:4326')
    })
});

这是在 FormPanel 末尾创建新协议(protocol)的代码:

    buttons: [{
        text: 'Search',
        handler: function() {

            comboLayer = Ext.getCmp('idcombo').getValue();
            keyword = Ext.getCmp('idtextfield').getRawValue();

            protocol.destroy();

            protocol = new OpenLayers.Protocol.HTTP({
                url: '/fs/' + comboLayer + '?format=GeoJSON&comments__ilike=' + keyword + '&queryable=comments',
                format: new OpenLayers.Format.GeoJSON({
                    ignoreExtraDims: true,
                    'internalProjection': new OpenLayers.Projection('EPSG:900913'),
                    'externalProjection': new OpenLayers.Projection('EPSG:4326')
                })
            });

            protocol.read();

            formPanel.search();
        }
    }]

如果我删除“protocol.destroy();”,原始协议(protocol)和新协议(protocol)都会发送,但原始协议(protocol)总是在新协议(protocol)之后发送,发生这种情况是因为请求是 AJAX?可以在原件之后发送新的吗?

非常感谢您对此的支持,提前致谢,

最佳答案

解决方案是仅使用“protocol.options.url = newUrl;”而不是protocol.destroy();或protocol.read();,完整的解释是here

关于openlayers - OpenLayers.Protocol.HTTP 中的 "TypeError: this.options is null"‏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14865195/

相关文章:

javascript - 使用字典数据对 AngularJS ng-repeat 进行排序

javascript JSON 对象到 JSF back bean

javascript - OpenLayers多线绘制线条消失

javascript - 更好的解决方案或替换window.unload

javascript - 谷歌地图检查多边形是否包含标记

javascript - Laravel Echo 如何处理连接、断开、重新连接等

overlay - OSM - 将鼠标悬停在标记上时显示图像叠加

javascript - 如何从 openlayers map 获取 lat/lng 值

javascript - OpenLayers 2.13.1 : deleting a geometry from a multigeometry feature

javascript - 选择复选框上的元素选择