问题遇到的现象和发生背景
在前端的html文件里的script里用json传递经纬度到后端views,后端接收后经过处理返回给前端另一经度、纬度和地名,前端接收数据后在地图上绘制圆形。
我遇到的问题是数据能从前端发到后端,但后端发的数据无法在前端页面显示,我不知道是后端发送数据的问题还是前端接受的问题,想请教一下
问题相关代码,请勿粘贴截图
后端html文件script
后端html文件script
map.addEventListener("dragend", function(){
var token_csrf = "{{ csrf_token }}";
var center = map.getCenter();
alert("地图中心点变更为:" + center.lng + ", " + center.lat);
map.clearOverlays();//清除覆盖物
var center = map.getCenter();
var pt = new BMapGL.Point(center.lng, center.lat);
var marker = new BMapGL.Marker(pt,{icon: centerIcon}); // 创建标注
map.addOverlay(marker);
$.ajax({
url: '/nearmap/', //发送请求的目的地址
data:JSON.stringify({ // JSON格式封装数据
lng: center.lng,
lat: center.lat
}),
contentType: 'application/json',
type: "POST",
traditional: true, // 需要传递列表、字典时加上这句
success: function(value) {
//var p1 = JSON.parse(value['point1']);
//var p2 = JSON.parse(value['point2']);
var p1 = $("#point1").val();
var p2 = $("#point2").val();
//var p1=console.log(value['point1']);
//var p2=console.log(value['point2']);
var point = new BMapGL.Point(p1, p2);
var circle = new BMapGL.Circle(point, 500, {
strokeColor: 'blue',
strokeWeight: 2,
strokeOpacity: 0.5
});
map.addOverlay(circle);
}
//fail: function(result) {
//}
});
});
前端:
前端:
@csrf_exempt # 不可删除,删除就收不到数据
def map(request):
if request.method == "POST":
json_receive = json.loads(request.body)
lng = json_receive['lng']
lat = json_receive['lat']
if lng!=None and lat!=None:
lng = float(lng)
lat = float(lat)
tuple = fence_recommend2(lng, lat)
name = str(tuple[0])
point = tuple[1]
point1 = str(point[0])
point2 = str(point[1])
value = {"point1": point1, "point2": point2, "name": name}
return JsonResponse(value, json_dumps_params={'ensure_ascii':False})
return render(None, 'nearmap.html')
运行结果及报错内容
我遇到的问题是数据能从前端发到后端,但后端发的数据无法在前端的script调用,我不知道是后端发送数据的问题还是前端接受的问题,想请教一下