【问题标题】:Url not being called through ajax没有通过 ajax 调用 URL
【发布时间】:2014-05-04 16:34:00
【问题描述】:

我正在尝试通过 ajax 将一些数据发送到我的 django 视图。出于某种原因,没有调用该 url。它总是提示“未找到!”。

这是我的 ajax 代码:

$.ajax({
url: "/AddToDb/",
type: "POST",
data: {"id":6,"quantity":3},
csrfmiddlewaretoken:'{{ csrf_token }}',
success: function(){
     alert("Found!");
  // code to update DOM here
},
error: function(xhr, ajaxOptions, thrownError){
   alert("Not found!");
}

});

这是我的网址:

url(r'^AddToDb/$', 'Phase_2.views.AddToDb'),

这是我的观点:

def AddToDb(request):
jdfsjfhs
if request.method == 'POST' and request.is_ajax():
    JSONdata = request.POST['data']
    dict = json.JSONDecoder().decode('JSONdata')
    obj = ShoppingCart.objects.get(id=4)
    obj.quantity =  dict['quantity']
    obj.save()
return render(request,"HTML.html")

这只是一个检查我是否能够将数据发送到我的视图的虚拟调用。我是新手,所以我确定我在某个地方犯了一个愚蠢的错误。请帮忙!

P.S 在我看来,“jdfsjfhs”只是为了检查视图是否被调用。它没有被调用。

【问题讨论】:

  • 检查 chrome 或 firefox 浏览器的 Network 标签。它将向您显示完整的绝对 URL。复制并粘贴到这里。

标签: javascript ajax django url


【解决方案1】:

发出 ajax 请求时。您需要发送完整的 url,例如 localhost/AddToDb 或 www.example.com/AddToDb 。您可以从 firefox 或 chrome 的控制台部分检查最终生成的请求。希望这会有所帮助。

【讨论】:

  • 好吧,我照你说的做了。现在警报消息显示“找到!”但它仍然会进入视图。
  • 当我尝试从浏览器直接访问 url "127.0.0.1:8000/AddToDb" 时,出现以下错误:SSL 连接错误:无法建立安全连接到服务器。这可能是服务器的问题,或者可能需要您没有的客户端身份验证证书。
【解决方案2】:

使用 firebug 调试您的 javascript 函数。它会告诉你函数是否发送了正确的响应。

【讨论】:

  • 这更像是一个评论而不是一个答案。
猜你喜欢
  • 1970-01-01
  • 2014-02-10
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
相关资源
最近更新 更多