在我的应用程序中,有几类数据需要从客户端浏览器发送到服务器。后端在 Django 中。我正在尝试使用 Ajax 将数据发布到 Django 中的视图函数,然后将某些内容返回给客户端。我试过的代码如下:
在 Django urls.py 中:
(r'^testPost/', testPost),
Django视图功能:
def testPost(request):
print request
if request.method == 'GET':
rID = request.GET['rID']
rName = request.GET['rName']
elif request.method == 'POST':
rID = request.POST['rID']
rName = request.POST['rName']
return HttpResponse("ID: " + str(rID) + " and Name: " + str(rName))
前端 AJAX 调用(ExtJS 3.3):
Ext.Ajax.request({
url: 'XXXX/testPost/?',
method: 'POST',
jsonData: Ext.encode({
"rID": 1333,
"rName": 'test'
}),
headers: {
'Content-Type': 'application/json'
},
success: function (response, opts){
console.log(response.responseText);
},
failure:function (response, opts){
console.log(response.responseText);
}
});
URL 设置似乎有问题。得到错误响应:
Some unexpected error occurred. Error text was: HTTP Error 403: FORBIDDEN
更新: 1.根据 ldiqual 的建议,把
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
在视图脚本中
将 ExtJS ajax 请求代码从使用 jsonData 更改为 params:
参数:{“rID”:1333,“rName”:“测试”}
我的问题解决了。