【问题标题】:AJAX post in external JS file with Django使用 Django 在外部 JS 文件中发布 AJAX
【发布时间】:2016-05-11 11:01:31
【问题描述】:

我正在尝试从我的一个 Django 网页发出 AJAX 发布请求,但它不起作用。我怀疑问题是由于我不知道如何正确引用外部 javascript 文件(位于静态文件夹的子文件夹中)中的 URL。我的 Javascript 文件中间的窗口警报显示正确,所以我知道代码正在执行到那里,但 POST 没有发生。

非常感谢您提供有关如何解决此问题的任何指示。

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})

网址.py:

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^survey/', views.survey, name='survey'),]

Javascript 摘录(位于 static/poll/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);
}
})}

【问题讨论】:

  • 你能打印request.POST并在这里分享吗?
  • 一件小事:应该是datatype 而不是dataType
  • 发现错误 - 它应该是“transaction_id = request.POST['start[transaction_id]']”。还必须纠正数据类型的拼写错误。谢谢两位

标签: javascript ajax django


【解决方案1】:

views.py 中有一个错误,错误地将 AJAX 帖子中的数据引用为 ['start[transaction_id]'] 而不是 ['start[transaction]']

if request.method == 'POST' and request.POST['start[action]']=="ethereum":
  transaction_id = request.POST['start[transaction]']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2012-07-08
    相关资源
    最近更新 更多