Error al hacer clic en el botón para enviar datos. Por favor, ayúdame a resolver el problema. Error al hacer clic en el botón para enviar datos. Por favor, ayúdame a resolver el problema. Error al hacer clic en el botón para enviar datos. Por favor, ayúdame a resolver el problema.
detalle.html
td> <!-- <a href="{% url 'Detail_pem' %}"><button data-product="{{order.id}}" data-act="{{order.name}}" class="btn btn-warning id_order btntam" >Detail</button> </a> --> <button data-product="{{order.id}}" data-act="{{order.name}}" class="btn btn-warning id_order btntam" >Detail</button> </td> </tr> {% endfor %} </tbody> </table> </div> <!-- <script type="text/JavaScript" src="{% static 'js/pem.js' %}"></script> --> <script> var id_order = document.getElementsByClassName('id_order') for (i = 0; i < id_order.length; i++) { id_order[i].addEventListener('click', function(){ var orid = this.dataset.product var ornm = this.dataset.act console.log('orid :', orid) console.log('ornm :', ornm) codata(orid, ornm) }) } function codata(orid, ornm){ console.log('orid :', orid, 'ornm :', ornm) const url = "Detail" fetch(url, { method :'POST', headers : { 'Content-Type' : 'application/json', 'X-CSRFToken' : csrftoken, }, body:JSON.stringify({'orid':orid, 'ornm':ornm}), }) .then((response) =>{ return response.json(); }) .then((data) => { console.log('Success:', data); }) } </script> {% endblock %}ver.py
def Detail(request): data = json.loads(request.body.decode("utf-8")) orid = data['orid'] ornm = data['ornm'] print('id :', orid,'nama :', ornm) context = {'orid ':orid , 'ornm':ornm} return render(request, 'store/detail.html', context )Creo que el problema es que no está devolviendo un objeto JSON correcto, está devolviendo una cadena, tal vez intente cambiar:
De esto:
def Detail(request): data = json.loads(request.body.decode("utf-8")) orid = data['orid'] ornm = data['ornm'] print('id :', orid,'nama :', ornm) return JsonResponse('Payment complete', safe=False)a algo como esto:
def Detail(request): data = json.loads(request.body.decode("utf-8")) orid = data['orid'] ornm = data['ornm'] print('id :', orid,'nama :', ornm) return JsonResponse({'status':'Payment complete'}, safe=False)Consulte, por ejemplo, la documentación de Django:
JavaScript
<script> var id_order = document.getElementsByClassName('id_order') for (i = 0; i < id_order.length; i++) { id_order[i].addEventListener('click', function(){ var orid = this.dataset.product var ornm = this.dataset.act console.log('orid :', orid) console.log('ornm :', ornm) data(orid, ornm) }) } function data(orid, ornm){ console.log('orid :', orid, 'ornm :', ornm) const url = "Detail" fetch(url, { method :'POST', headers : { 'Content-Type' : 'application/json', 'X-CSRFToken' : csrftoken, }, body:JSON.stringify({'orid':orid, 'ornm':ornm}), }) .then((response) => response.json()) .then((data) => { console.log('Success:', data); window.location.href = "{% url 'Detail_pem' %}" }) } </script>ver.py
def Detail_pem(request): data = json.loads(request.body.decode("utf-8")) orid = data['orid'] ornm = data['ornm'] print('id :', orid, 'nama :', ornm) context = {'orid ':orid , 'ornm':ornm} return render(request, 'store/detail.html', context ) def Detail(request): data = json.loads(request.body.decode("utf-8")) orid = data['orid'] ornm = data['ornm'] print('id :', orid,'nama :', ornm) return JsonResponse('Payment complete', safe=False)Obteniendo un error como ese JSONDecodeError en /Detail_pem Valor esperado: línea 1 columna 1 (char 0) ingrese la descripción de la imagen aquí