Chrome控制台中的错误是RangeError:超出最大调用堆栈大小
我使用以下代码:
draw.on('drawend',
function(evt) {
var fe = evt.feature
console.log(fe);
var parser = new ol.format.GeoJSON();
var features = source.getFeatures();
var featuresGeoJSON = parser.writeFeatures(features);
$.ajax({
url: "http://0.0.0.0:3000/features.json",
method: "POST",
data: fe
});
},
this);
evt.feature对象在开发人员工具控制台中看起来不错。
答案 0 :(得分:1)
确保序列化您在事件中获得的功能,而不是源代码中的功能。 $.ajax
要求字符串或具有键值对的对象。因为要发送整个对象,所以必须使用JSON.stringify()来序列化对象。类似的东西:
draw.on('drawend',
function(evt) {
var parser = new ol.format.GeoJSON();
var featureGeoJSON = parser.writeFeature(evt.feature);
$.ajax({
url: "http://0.0.0.0:3000/features.json",
method: "POST",
data: JSON.stringify(featureGeoJSON)
});
},
this);