2017-03-31 66 views
-3

通過使用Ajax一個JSON發送下面的代碼:Object.toString() - > [對象的對象]

var geojson = new Object(); 
geojson["type"] = "FeatureCollection"; 
geojson["zone_type"] = "Zone"; 
$.ajax({ 
    url : url, 
    type : 'POST', 
    data : geojson, 
    dataType : 'json', 
}); 

然而,當我在控制檯「以GeoJSON」問,並且當我看在所述請求網絡:

geojson = "[object Object]" 

其實,我應該有對象:

geojson = {type:FeatureCollection,zone_type:Zone} 

不能?

+0

嘗試'數據:JSON.stringify(以GeoJSON)'和'console.log(「geojson =」,geojson);' – SLYcee

+0

嗯,是的。在網絡中,這些將作爲POST請求中的參數傳遞。然後在控制檯中,您應該看到該對象。請記住,您始終可以在代碼中執行console.log(),並將其輸出到控制檯。 – MarkSkayff

+0

我不能重現這個問題(至少,不是沒有設置'processData:false'這不是你的[mcve]做的事情)當我添加一個url變量(也從你的MCVE中丟失)並運行該代碼,我在POST請求中得到了一個URL Encoded Form Data Body。我沒有看到'[object Object]',我也沒有看到JSON。你真的試圖發送JSON嗎?(在你的「答案」中你說過*但是,是否可以刪除結果中的「但對JSON文本無效)您是否將JavaScript與JSON混淆? – Quentin

回答

0
var geojson = new Object(); 
geojson["type"] = "FeatureCollection"; 
geojson["zone_type"] = "Zone"; 
$.ajax({ 
    url : url, 
    type : 'POST', 
    data : JSON.stringify(geojson), 
    dataType : 'json', 
}); 

如果我添加JSON.stringify(以GeoJSON)的確,我得到正確:

geojson = {"type":"FeatureCollection","zone_type":"warning_zone"} 

非常感謝您@SLYcee