首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在没有JQuery的情况下将Ajax post发送到Django表单

如何在没有JQuery的情况下将Ajax post发送到Django表单
EN

Stack Overflow用户
提问于 2016-08-09 05:56:13
回答 1查看 1.2K关注 0票数 1

我目前正在使用ajax将帖子发送到django表单,但我需要在没有JQuery的情况下完成此操作。

这是可用的JQuery版本。

代码语言:javascript
运行
复制
$.ajax({
    url : "/platform/post-tracking/",
    type : "POST",
    async: true,
    data : {
        account : 229829623,
        width : pageWidth
    }
});

如果没有JQuery,我如何发送此post请求?我试过了

代码语言:javascript
运行
复制
data = {
        account : 229829623,
        width : pageWidth
}
var request = new XMLHttpRequest();
request.open('POST', '/platform/post-tracking/', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);

但是表单无效。

Django表单:

代码语言:javascript
运行
复制
class TrackingForm(forms.ModelForm):
    class Meta:
        model = TrackedSession
        fields = ('account', 'width')

Django模型:

代码语言:javascript
运行
复制
class TrackedSession(models.Model):
    account = models.IntegerField(default=0)
    width = models.IntegerField(default=0)

Django视图:

代码语言:javascript
运行
复制
def TrackDataView(request):
    if request.method == 'POST':
        form = TrackingForm(request.POST)
        if form.is_valid():
            print "Form is valid."
            temp = form.save(commit=False)

            session = TrackedSession()
            session.account = temp.account
            session.trackedIp = trackingip
            session.width = temp.width
            session.save()
            print("Session Created")
    else:
        print "Form isn't valid."
        print form.errors
    response_data = "Success"
    return HttpResponse(
        json.dumps(response_data),
        content_type="application/json"
        )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-09 06:08:00

request.send()data参数必须是URL编码的字符串。jQuery将对象转换为字符串,但如果不使用jQuery,则必须自己完成此操作。

代码语言:javascript
运行
复制
data = 'account=229829623&width=' + encodeURIComponent(pageWidth);
request.send(data);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38839121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档