![](/img/trans.png)
[英]Post json to django rest framework API with jquery-ajax not working
[英]Ajax Post in Django framework?
我在django框架中對ajax / jquery文章進行了簡單的測試,但是並不真正理解為什么輸出不能進入模板頁面。 任何人?
我可以在firebug的“響應”選項卡中看到帖子的內容,但是我是否嘗試返回模板或簡單消息,瀏覽器本身沒有任何反應。 相反,非ajax帖子按預期工作(加載新頁面,發布消息)
我是ajax / jquery / django的完全新手所以請原諒我的無知:)
最終,我希望能夠通過jquery將任意非形式變量傳遞給django視圖。 可能? 謝謝 :)
這是代碼 -
的test.html:
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script></javascript>
<script type="text/javascript">
$(document).ready(function() {
$("#testForm").submit(function(event){
event.preventDefault();
$.ajax({
type:"POST",
url:"/test_results/"
});
});
return false;
});
</script>
</head>
<body>
<form id="testForm" action="/test_results/" method="post">
<input type="submit" id="go" name="go" value="Go!">
</form>
</body>
</html>
views.py:
from django.shortcuts import render_to_response
from django.http import HttpResponse
def test_ajax(request):
if request.is_ajax():
message = "Yes, AJAX!"
else:
message = "Not Ajax"
return HttpResponse(message)
#alternative test: return render_to_response('test_results.html')
urls.py:
(r'^test_results/$', views.test_ajax),
(r'^test/$', views.test),
幾乎是空的test_results.html:
<html>
<head>
</head>
<body>
test results
</body>
</html>
我可以在firebug的“響應”選項卡中看到帖子的內容,但是我是否嘗試返回模板或簡單消息,瀏覽器本身沒有任何反應。 相反,非ajax帖子按預期工作(加載新頁面,發布消息)
如果你收到回復,你會收到回復。 你只是沒有做任何事情。
為什么不警告數據並將其附加到<body>
,例如:
$.ajax({
type:"POST",
url:"/test_results/",
data: {
'arbitrary-data': 'this is arbitrary data',
'some-form-field': $("myform input:first").val(), // from form
'background-color': $("body").css("background-color")
// all of this data is submitted via POST to your view.
// in django, request.POST['background-color']
},
success: function(data){
alert(data);
$("body").append(data);
}
});
您需要為視圖返回的響應添加處理程序:
$.ajax({
type:"POST",
url:"/test_results/",
dataType: "json",
success: function(json)
{
//specifying a dataType of json makes jQuery pre-eval the response for us
console.log(json.message);
}
});
您可能還希望在視圖中將響應編碼為JavaScript:
try:
import json
except ImportError:
import simplejson
def my_view(request):
if request.is_ajax():
return HttpResponse(json.dumps({'message' : 'awesome'},
ensure_ascii=False), mimetype='application/javascript')
希望能幫到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.