我正在爲一個更大的項目編寫一個小測試應用程序。我想異步使用FileReader()從客戶端讀取一個txt文件,並通過使用AJAX將文本體傳遞給Django服務器。當服務器成功獲取「發佈」文本時,它將返回文本的長度。它在服務器上運行良好,我得到了我的預期。但是現在我想將文本的大小(長度)傳回給客戶端,並將其異步顯示在網頁的某個位置。但是失敗了......這是我的代碼:AJAX可以訪問Django HttpResponse變量
HTML
<script type="text/javascript">
var render_text = function(csvFile, onLoadCallback){
var reader = new FileReader();
reader.onload = onLoadCallback;
reader.readAsText(csvFile);
}
$(document).ready(function(){
$("#id_csvFileInput").on("change", function(e){
render_text(this.files[0], function(e){
var text = e.target.result;
$.ajax({
url: "",
type: 'POST',
async: true,
data: {'text': text},
success: function(data){
$("#id_test").text(data.size);
}
});
});
});
});
</script>
<p>
<input type="file" name="csvFileInput" id="id_csvFileInput" accept=".csv">
</p>
<div>
<p>Waiting for reponse context....</p>
<span id="id_test">?</span>
</div>
View.py
# Home page.
@csrf_exempt
def home(request):
template = 'hbvapp/home.html'
context = {}
if request.method == "POST" and request.is_ajax():
context['test'] = request.POST.get('text')
context['size'] = len(context['test'])
print context['size']
return render(request, template, context)
else:
return render(request, template)
任何幫助將十分讚賞! Reagards
OMG!完美工作。我是新的Web應用程序開發。我想對JQuery,AJAX和Json做更多的研究!非常感謝 ! –