我正在尝试使用 OpenLayers 库发出发布请求。这是我的代码的一部分:
OpenLayers.Request.POST({
url: this.url,
scope: this,
success: this.drawChart,
failure: function() {
this.loadMask.hide();
alert("No data for charts...")
},
data: xml2
});
xml2 在哪里:
var xml2 = this.obsformat.write({
eventTime: 'first',
resultModel: 'om:Measurement',
responseMode: 'inline',
procedure: station,
offering: phenom,
observedProperties: obsprop,
responseFormat: this.responseFormat
});
在 xml2 中: phenom 和 obsprop 是我从一些下拉菜单中获得的字符串变量。变量等于:
phenom = 'Climate'
obsprop = 'fdgf'
使用 firebug 我发现我的 POST 请求如下所示:
<GetObservation xmlns="http://www.opengis.net/sos/1.0" version="1.0.0" service="SOS" xmlns:om="http://www.opengis.net/om/1.0" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/sos/1.0 http://schemas.opengis.net/sos/1.0.0/sosGetObservation.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<offering>Climate</offering>
<eventTime>
<ogc:TM_During>
<ogc:PropertyName>om:samplingTime</ogc:PropertyName>
<gml:TimePeriod>
<gml:beginPosition>2013-07-04T00:30</gml:beginPosition>
<gml:endPosition>2013-07-06T00:30</gml:endPosition>
</gml:TimePeriod>
</ogc:TM_During>
</eventTime>
<observedProperty>f</observedProperty>
<observedProperty>d</observedProperty>
<observedProperty>g</observedProperty>
<observedProperty>f</observedProperty>
<responseFormat>text/xml;subtype="OM/1.0.0"</responseFormat>
<resultModel>om:Measurement</resultModel>
<responseMode>inline</responseMode>
</GetObservation>
由于某种原因,变量“obsprop”不是存储在一个xml元素中,而是被解析为许多不同的元素(见上文)。其他变量不会发生这种情况,它们也是字符串类型。
有人可以帮我吗?它一定很简单,但我不知道是什么。
我希望我的问题很清楚。如果我必须更好地解释一些事情,请告诉我。
非常感谢迪米特里斯