GeoExt1.1でOL2.11を使用しています。このGeoExtの例をテストおよび変更した後:http://geoext.org/lib/GeoExt/widgets/form/FormPanel.html 、新しいプロトコルの破棄と読み取りに問題があり、「TypeError:this.optionsisファイアバグのnullHTTP.js(180行目)」。この180行目から私が理解しているのは、(新しいプロトコルの)新しいオプションがないことです。これが問題であるかどうか、およびそれを解決する方法がわかりません。これは元のプロトコルです(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の最後にあるコードです。
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();」を削除すると、元のプロトコルと新しいプロトコルの両方が送信されますが、常に元のプロトコルが新しいプロトコルの後に送信されます。これは、リクエストがAJAXであるために発生しますか?オリジナルの後に新しいものを送ることは可能ですか?
よろしくお願いします。