Ich versuche, eine AJAX-Post-Anfrage von einer meiner Django-Webseiten zu machen, aber es funktioniert nicht. Ich vermute, dass das Problem daran liegt, dass ich nicht weiß, wie ich die URL in der externen Javascript-Datei (die sich in einem Unterordner des statischen Ordners befindet) korrekt referenzieren kann. Der Fensteralarm in der Mitte meiner Javascript-Datei wird korrekt angezeigt, so dass ich weiß, dass der Code bis dorthin ausgeführt wird, aber der POST wird nicht ausgeführt.AJAX Post in externe JS-Datei mit Django
Vielen Dank im Voraus für Hinweise, wie Sie dies beheben können.
Views.py:
@csrf_exempt
def survey(request):
survey_response = Post.objects.all()
post = Post.objects.get(question=u'Are you happy with your waste management services?')
if request.method == 'POST' and request.POST['start[action]']=="geolocation":
latitude = request.POST['start[latitude]']
longitude = request.POST['start[longitude]']
if request.method == 'POST' and request.POST['start[action]']=="ethereum":
transaction_id = request.POST['start[transaction_id]']
print transaction_id
return render(request, 'poll/survey.html', {'survey_response': survey_response})
Urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^survey/', views.survey, name='survey'),]
Javascript Auszug (bei statischen gelegen/Umfrage/javascript/votes.js)
function yesVote(){
var transaction_ID= sendM.increaseYes.sendTransaction({from:council});
sendTransaction(transaction_ID);
}
function noVote(){
var transaction_ID=sendM.increaseNo.sendTransaction({from:council});
sendTransaction(transaction_ID);
}
function sendTransaction(transaction_ID){
var ethereum = "ethereum";
window.alert("HI");
$.ajax({
url: "/survey/",
type:"POST",
data: {start:{
action:ethereum,
transaction:transaction_ID}
},
dataType:'json',
success: function(data){
alert('success'+data);
}
})}
Können Sie 'request.POST' drucken und es hier teilen? – alix
Nur eine kleine Sache: Es sollte "Datatype" nicht "DataType" sein. – WeGi
Fehler gefunden - es hätte "transaction_id = request.POST ['start [transaction_id]']" sein müssen. Außerdem musste der Datentyp Rechtschreibfehler korrigiert werden. Danke beiden – Anne2504