這些是用於使用ajax發送json數據的代碼片段。 你可以在最後的帖子中顯示相同的代碼。 我只是按照代碼。 但我得到403錯誤403在使用ajax發送JSON數據時發生禁止的錯誤
jsonpost.html
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#mySelect").change(function(){
selected = $("#mySelect option:selected").text()
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
url: '/test/jsontest/',
data: {
'fruit': selected,
'csrfmiddlewaretoken': '{{ csrf_token }}'
},
success: function(result) {
document.write(result)
}
});
});
});
</script>
</head>
<body>
<form>
{% csrf_token %}
{{ data }}
<br>
Select your favorite fruit:
<select id="mySelect">
<option value="apple" selected >Select fruit</option>
<option value="apple">Apple</option>
<option value="orange">Orange</option>
<option value="pineapple">Pineapple</option>
<option value="banana">Banana</option>
</select>
</form>
</body>
</html>
urls.py
urlpatterns = patterns('',
url(r'^jsontest/$', views.JsonRead.as_view(), name='userTest'),
)
views.py
class JsonRead(View):
def get(self,request):
return render(request, 'MW_Etc/jsonpost.html')
def post(self,request):
print(request.body)
data = request.body
return HttpResponse(json.dumps(data))
變化果實值後,我得到了錯誤。 我該如何解決這個問題? 其他任何好方法也不錯。
什麼是完整錯誤?您似乎正在做一個沒有csrf標記的post請求。 – Sayse
@Sayse這裏是完整的錯誤。 POST HTTP://本地主機:8000 /測試/ jsontest/403(禁止) m.ajaxTransport.send @ jquery.min.js:4 m.extend.ajax @ jquery.min.js:4 (匿名函數)@(index):9 m.event.dispatch @ jquery.min.js:3 m.event.add.r.handle @ jquery.min.js:3 – eachone
使用[edit](http:/ /stackoverflow.com/posts/32267337/edit)在你的問題下的按鈕來更新它的新信息。 – Sayse