Python Djangoのviews.pyにAjax呼び出しで渡されたJsonデータからいくつかの要素を抽出しようとしています。Python POSTでJsonのコンテンツを抽出中にJSONをデコードできませんでした
私のjsファイル内の私のAJAX呼び出しは次のようになります。
$.ajax({
url: "update/",
data: {'edited': editedFeature},
dataType: 'json',
type: 'POST',
contentType: "application/json;charset=utf-8",
success: function(data){
alert(data);
}
});
私はリーフレット層に取り組んでいること、ここで注意してくださいよとデータ属性でそのeditedFeatureにGeoJSON値は次のとおりです。
var editedFeature = selectedFeature.toGeoJSON();
マイviews.pyは、単に物事をテストするために次のようになります。
def update(request):
#ajax data
line = json.loads(request.body.decode("utf-8"))
rid = line['rid']
print(rid)
print("testing edited route")
return HttpResponse("Success!")
これが正しいかどうかは分かりません。同じような場合には、stackoverflowで利用可能な解決策をいくつか試してみました。
ValueError: No JSON object could be decoded
を私はline = json.loads(request.body)
に変更した場合::
print(request.body)
をプリントアウトした場合、この文字列が現れるでしょう
ValueError: No JSON object could be decoded
:
edited%5Btype%5D=Feature&edited%5Bid%5D=J1276&edited%5Bgeometry%5D%5Btype%5D=LineString&edited%5Bgeometry%5D%5Bcoordinates%5D%5B0%5D%5B%5D=120.965&edited%5Bgeometry%5D%5Bcoordinates%5D%5B0%5D%5B%5D=14.5999&edited%5Bgeometry%5D%5Bcoordinates%5D%5B1%5D%5B%5D=120.964&edited%5Bgeometry%5D%5Bcoordinates%5D%5B1%5D%5B%5D=14.6017&edited%5Bgeometry%5D%5Bcoordinates%5D%5B2%5D%5B%5D=120.963&edited%5Bgeometry%5D%5Bcoordinates%5D%5B2%5D%5B%5D=14.6028&edited%5Bgeometry%5D%5Bcoordinates%5D%5B3%5D%5B%5D=120.962&... %5D%5Bcoordinates%5D%5B9%5D%5B%5D=14.6101&edited%5Bproperties%5D%5Bname%5D=South+Pier+-+Pier+North+via+Del+Pan
私はエラーが述べ発生しますrequest.body
に何かがあると、デコードやロードが行われないのはなぜだろうか?別のことは、どうすればjsonの文字列からname
を得ることができますか?線rid = line['rid']
は正しいですか?
の上からそのような文字列のクエリまたは何かを渡した
文字列はJSONではありません。 JSONを使用し、GETパラメータを使用しないようにajaxの設定を確認する必要があります。 – elyashiv
こんにちは@elyashiv GETパラメータがどういう意味ですか? – Reiion