【发布时间】:2016-10-01 16:09:31
【问题描述】:
我正在尝试获取具有名称和位置属性的对象。我需要 location 属性的坐标来在该位置创建一个标记。然而,运行此代码会导致 Uncaught SyntaxError: Unexpected token o in JSON at position 1。我在 PUT 方法中使用了 JSON.stringify(data)。
function getLocation(){
var name = $("#username").val();
console.log('getLocation()');
if(name != ''){
$.ajax({
type: 'GET',
url: '../../' + name,
async: true,
success:function(data){
var oData = JSON.parse(data);
var marker = new L.marker(oData.location);
marker.addTo(map);
$("#username").val('');
},
error: function(XMLHttpRequest, textStatus, errorThrown) { alert('Not found'); }
});
}
}
【问题讨论】:
-
您的数据是什么样的。添加示例 JSON 输出
-
unexpected token 'o'通常意味着您正在尝试解析对象而不是 JSON 文本,即data已经从 JSON 解析为对象。检查data是否已经是一个对象:console.log(data) -
如果您不指定
dataType属性,jQuery.ajax 会猜测数据类型是什么。您最好使用值json指定它,然后您可以确定 jQuery 已经解析了 JSON 字符串并传递给您一个对象,而不是字符串。
标签: javascript json leaflet openstreetmap