Jquery 如何将javascript字符串变量传递给django视图?

Jquery 如何将javascript字符串变量传递给django视图?,jquery,json,django,push-notification,python-requests,Jquery,Json,Django,Push Notification,Python Requests,这是javascript部分。正在从此文件调用以下store_token函数,并传递字符串值,例如“AasdfGth:Jl Hjf…”(浏览器令牌值) django的观点是- @csrf_exempt @api_view(['POST']) @permission_classes((AllowAny,)) def api_call_for_django_view(request): if request.method == 'POST': token = request.

这是javascript部分。正在从此文件调用以下store_token函数,并传递字符串值,例如“AasdfGth:Jl Hjf…”(浏览器令牌值)

django的观点是-

@csrf_exempt
@api_view(['POST'])
@permission_classes((AllowAny,))
def api_call_for_django_view(request):
    if request.method == 'POST':
        token = request.POST.dict()
        print("", token)    #this gives a value {'{"reg_id":{}}': ''}
        registration_id = token['reg_id']
不知道为什么令牌值在成功到达存储\u令牌功能时未被传递

console.log("Reg id", data);
给出以下值


我想把javascript中的
reg\u id
字符串值,即
token
存储到django view的
registration\u id

变量中,正如@mursalin指出的那样,
token
变量就是Promise的一个例子。解析承诺时,字符串数据将可用。因此,在JS中,当承诺得到解决时,您必须发出post请求。请参阅下面的JS代码

函数存储\u令牌(令牌){
if(承诺的令牌实例){
然后(tokenData=>{
console.log('tokenData',tokenData);
let data={'reg_id':tokenData};
控制台日志(“数据”,数据);
//data=JSON.stringify(数据);
$.post('/api_call_for_django_view',data,response=>{console.log('post response',response);});
}).catch(令牌错误=>{
log('tokenError',tokenError);
});
}
}

我希望这会有所帮助。

如果您直接将“数据”作为对象发布,而不是在JS函数中执行JSON.stringify(数据)会发生什么?正如@SohelAman指出的,您不需要严格地将数据作为对象发送,这可能会解决您的问题,尽管它无法回答post中为什么有空对象。这样做
console.log(“regid”,数据)
输出正确的数据?@SohelAman数据成功地传递到django视图,但当我尝试打印
request.POST
时,它会显示
request.POST.dict()
返回空的python字典。这是访问对象的正确方式吗?@mursalin是的,输出提供了所需的正确的
reg\u id
。它在控制台中打印的表格附在问题后面。值
“fEZBO4u…”
是令牌value@AmitPathak是一种承诺吗?如果是,那可能就是问题所在。它应该是json序列化的,可以作为数据发送。我正是以这种方式实现的,它正在工作!
console.log("Reg id", data);