Ajax POST请求调用Geoserver的WFS服务
在使用jquery的POST调用Geoserver的WFS服务遇到的问题
1、Geoserverde的WFS服务传入的参数是XML的String类型,Content-type为contentType:”text/plain;charset=UTF-8”,开始没有注意到ajax的post请求的默认 contentType默认值: “application/x-www-form-urlencoded”。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<script src="../lib/ol-debug.js"></script>
<script src="../lib/jquery.min.js"></script>
<link href="../lib/ol.css" rel="stylesheet">
<title></title>
</head>
<body>
<button onclick="request()">请求</button>
<script type="text/javascript">
var string1 = "<GetFeature xmlns=\"http://www.opengis.net/wfs\" service=\"WFS\" version=\"1.1.0\" outputFormat=\"application/json\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.1.0/wfs.xsd\"><Query typeName=\"osm:water_areas\" srsName=\"EPSG:3857\" xmlns:osm=\"http://openstreemap.org\"><Filter xmlns=\"http://www.opengis.net/ogc\"><And><PropertyIsLike wildCard=\"*\" singleChar=\".\" escapeChar=\"!\"><PropertyName>name</PropertyName><Literal>Mississippi*</Literal></PropertyIsLike><PropertyIsEqualTo><PropertyName>waterway</PropertyName><Literal>riverbank</Literal></PropertyIsEqualTo></And></Filter></Query></GetFeature>";
function request(){
$.ajax({
type: 'POST',
url: "http://demo.boundlessgeo.com/geoserver/wfs",
data: string1,
success: function (data) {
console.log(data);
},
error:function(data){
console.log(data);
},
contentType:"text/plain;charset=UTF-8",
dataType: "json"
})
}
</script>
</body>
</html>