重定向函数在我为Post reques实现了AJAX函数之后停止工作

2024-04-29 09:16:33 发布

您现在位置:Python中文网/ 问答频道 /正文

在我发布到GAE之后,我想呈现HTML页面,该页面将显示我刚刚发布的数据。因此,在POST请求中,最后,我使用实体ID调用GET请求。在我使用AJAX请求(而不仅仅是HTML表单)实现POST请求之前,它一直有效,但现在不起作用了。
这是一个无效的请求:self.redirect('/house/%s' % str(p.key.id()))。我的直觉告诉我,这是因为我是从客户端的AJAX函数调用这个函数的,它试图在AJAX函数完成之前进入一个新页面。不过,我不是很擅长JS或Python,所以任何帮助都将不胜感激。谢谢!终端正在响应:

Magikarp uses Splash. It's not very effective.
INFO     2017-10-24 04:03:00,931 module.py:832] default: "POST /house HTTP/1.1" 302 -
INFO     2017-10-24 04:03:00,994 module.py:832] default: "GET /house/4554452040123423436 HTTP/1.1" 200 3024

def post(self):
        if not self.user:
            self.redirect('/home')
        data = json.loads(self.request.body)
        city = data["city"]
        state = data["state"]
        jsObject = data["jsObject"]
        if city and state:
            p = Post(parent = blog_key(), city = city, state = state, jsObject = jsObject)
            p.put()
            print ("Magikarp uses Splash. It's not very effective.")
            self.redirect('/house/%s' % str(p.key.id()))
        else:
            error = "city and state, please!"
            self.render("newhouse.html", city=city, state=state, error=error)

function postRequest() {
    var city = $("#city").val();
    var state = $("#state").val();
    var jsObject = JSObject;
    $.ajax({
        type: "POST",
        url: "/submit",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify({
            "city": city,
            "state": state,
            "jsObject": jsObject  
        }),
        dataType: "json"
    })
        .done(function(jsonResponse) {
            $("#error").html(jsonResponse.message);
        });
}

Tags: keyselfjsoncitydatavarhtmlnot