gpt4 book ai didi

javascript - 使用 JQuery 和 Ajax 将 JSON 字符串传递给 django

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:13 24 4
gpt4 key购买 nike

我对 Django 有点陌生,并试图理解它。目前,我正在创建一个网络拓扑可视化工具(认为路由器和交换机连接在一起)。它工作正常,所有数据都保存在 JavaScript 对象中。

我希望能够在用户单击按钮时将此 javascript 对象发送到 django,以便可以对其进行适当的解析和处理。我做了很多研究,发现了一堆类似的实现,它们使用 JQuery 和 ajax 的组合来 POST JSON 字符串。这是我当前的一些代码:

mainapp/urls.py

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
url(r'^NetworkTopology/', include('OpenAutomation.NetworkTopology.urls')),
url(r'^NetworkTopology/json/', include('OpenAutomation.NetworkTopology.urls')),
url(r'^admin/', admin.site.urls),
]

网络拓扑/urls.py

from django.conf.urls import url

from . import views

urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^json/$', views.returnjson, name='returnjson'),
]

网络拓扑/views.py

from django.http import HttpResponse
from django.shortcuts import render_to_response


def index(request):
return render_to_response('index.html')


def returnjson(request):
if request.is_ajax():
request_data = request.POST
print("Raw Data: " + request_data.body)
return HttpResponse("OK")

JavaScript 函数(按下返回 JSON 按钮):

function returnJsonTop(){
$(document).ready(function() {
$.ajax({
method: 'POST',
url: '/NetworkTopology/json',
dataType: 'json',
data: JSON.stringify(nodes.get(),null,4),
success: function (data) {
//this gets called when server returns an OK response
alert("it worked!");
},
error: function (data) {
alert("it didnt work");
}
});
});
}

在我的索引模板中,我创建了一个按钮,按下该按钮时会调用 returnJsonTop() 函数:

<button id="submitJson" onclick="returnJsonTop();">Deploy</button>

目前,当我按下“部署”按钮时,我只会收到“它不起作用”警报,该警报已设置为处理错误。我真的很感激有人在这里为我指明正确的方向。我怀疑问题出在我的 urls.py 文件中,但我尝试了各种 url 组合,但没有成功。

最佳答案

您正在尝试访问 request.POST 上的 body。但 body 是请求的直接属性。您的代码应该是:

    request_data = request.body
print("Raw Data: " + request_data)

另请注意,在 Javascript 中,$(document).ready 行没有任何意义;你应该删除它。

关于javascript - 使用 JQuery 和 Ajax 将 JSON 字符串传递给 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com