2013-03-13 87 views
0

我試圖通過AJAX/JSON發佈POST,但服務器報告HTTP 500錯誤。Django,JQuery,AJAX和JSON HTTP 500

視圖

url(r'^digajax$', 'digajax.views.main'), 
url(r'^digajax_ajax$', 'digajax.views.ajax'), 

模板

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script> 

<script type="text/javascript"> 
     $(document).ready(function() { 
       $("#button").click(function() { 
         var input_string = $("#digInput").val(); 
         $.ajax({ 
           url : "/digajax_ajax", 
           type : "POST", 
           data : { 
             clientinput : input_string, 
             csrfmiddlewaretoken: '{{ csrf_token }}' 
           }, 
           success : function(data) { 
             jQuery('#result').html(data).hide().fadeIn(1500); 
           }, 
           error : function(xhr,errmsg,err) { 
             alert(xhr.status + ": " + xhr.responseText); 
           } 
         }); 
         return false; 
       }); 
     }); 
</script> 


       <form method="post" name="diginput form" action="/digajax_ajax"> 
       {% csrf_token %} 
           <input name="digInput" id="digInput" type="text"> 
           <input id="button" type="button" value="lookup"></input> 
       </form> 

<p id="result"> 
</p> 

</body> 
</html> 

任何想法,螢火蟲輸出只是示出了500的HTTP錯誤。 謝謝,

+0

如果您手動執行相同的POST(即關閉javascript功能並且只是POST形式),會發生什麼? – 2013-03-13 23:53:48

+0

500錯誤代碼表明服務器在回答你時遇到了一些麻煩:它的日誌有什麼記錄? – lmsteffan 2013-03-13 23:54:31

回答

0

更改jquery $ .ajax並從實際窗體中刪除帖子後,它現在工作。

<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.8.2.js'></script> 

<script type="text/javascript"> 
     $(document).ready(function() { 
       $("#button").click(function() { 
         var input_string = $("#digInput").val(); 
         $.ajax({ 
           url : "/digajax_ajax", 
           type : "POST", 
           dataType: "json", 
           data : { 
             clientinput : input_string, 
             csrfmiddlewaretoken: '{{ csrf_token }}' 
           }, 
           success : function(json) { 
             $('#result').append('Response Value: ' + json.clientinput1); 
           }, 
           error : function(xhr,errmsg,err) { 
             alert(xhr.status + ": " + xhr.responseText); 
           } 
         }); 
         return false; 
       }); 
     }); 
</script> 


       <form method="post" name="diginput form" > 
       {% csrf_token %} 
           <input name="digInput" id="digInput" type="text"> 
           <input id="button" type="button" value="lookup"></input> 
       </form> 

<div id="result"> 
</div> 

</body> 
</html>