Bonjour,
je débute sur django et je voulais tester d'envoyer une donnée via un appel ajax a une view python, la traiter et la renvoyer dans ma page web ^^
L'appel ajax se déroule bien et quand je regarde la réponse de ma requete le contenu est bon mais ne s'affiche pas le navigateur :
Du coup je comprends pas trop pourquoi ca me fait ça ^^
mon code :
index.html:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <html lang="en" dir="ltr"> <head> {% load static %} <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js" integrity="sha512-n/4gHW3atM3QqRcbCn6ewmpxcLAHGaDjpEBu4xZd47N0W2oQ+6q7oc3PXstrJYXcbNU1OHdQ1T7pAP+gi5Yu8g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script type="text/javascript" src="{% static 'loto/js/loto.js' %}"></script> <link rel="stylesheet" href="{% static 'loto/css/loto.css' %}"> <meta charset="utf-8"> <title>Django test</title> </head> <body> <div id="bdd_uptdate"> <form action="#" method="post"> {% csrf_token %} <button type="button" action="bdd_update" id="btn" name="button_uptdate">Mise à jour des tirages</button> </form> </div> <div id="test"> <p>json response= {{ action }} </p> </div> </body> </html>
views.py
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 from django.shortcuts import render from django.template import loader from django.views.decorators.csrf import csrf_exempt, csrf_protect from django.http import * from .tools import * @csrf_exempt def home(request): x=request.POST.get('x') print(type(x)) # y=testTools(x) return render(request,'loto/index.html',{'action':x})
loto.js:
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 function getCookie(name) { let cookieValue = null; if (document.cookie && document.cookie !== '') { const cookies = document.cookie.split(';'); for (let i = 0; i < cookies.length; i++) { const cookie = cookies[i].trim(); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } $(document).ready(function(){ const request=new Request('{% url "test" %}',{method: 'POST',}) let csrftoken = getCookie('csrftoken'); // console.log(csrftoken); $.ajaxSetup({ beforeSend: function(xhr) { xhr.setRequestHeader('Csrf-Token', csrftoken); } }); $('#btn').on('click',function(){ let $answer = $('#answer'); let value=$('#btn').attr('action'); if ( value == "bdd_update"){ // let request=new Request('test/',{method: 'POST',body:data}) // fetch(request) // .then(response => response.json()) // .then(result => {console.log(result);}) $.ajax({ headers: { "X-CSRFToken": csrftoken }, url: '', type: "post", data: {'x':value}, success: function(data){ console.log("c'est passer"); } }); } }); });
Je vous remercie par avance![]()
Partager