gpt4 book ai didi

jquery - 使用 python、jQuery 和 AppEngine 对按钮单击响应进行重定向(使用 http post)

转载 作者:行者123 更新时间:2023-12-01 05:51:00 25 4
gpt4 key购买 nike

我有一个简单的 AppEngine 应用程序,其中有一个名为 WebInterface.py 的文件,负责使用以下代码将用户路由到正确的页面:

import webapp2
from handlers import MainHandler
from handlers import PageOneHandler
from handlers import PageTwoHandler

app = webapp2.WSGIApplication([
('/', MainHandler),
('/pageOne', PageOneHandler),
('/pageTwo', PageTwoHandler)
], debug=True)

另一个 handlers.py 包含所有负责向用户显示页面的 RequestHandler。它有以下代码:

import webapp2

class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello, You are in the Main Page!')

class PageOneHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello, You are in the First Page!')
self.response.write('<br><html><head><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script></head> <body>')
self.response.write('<button id="btn" onClick="doAction()">Click Me')
self.response.write('</button><p id="demo"></p>')
self.response.write('<script>')
self.response.write('function doAction()')
self.response.write('{document.getElementById("demo").innerHTML="Hello World";')
self.response.write('var data = {')
self.response.write('user : "UserName", pwd : "Password"')
self.response.write('};')
self.response.write('jQuery.post("/pageOne", data);')
self.response.write('}')
self.response.write('</script>')
self.response.write('</body></html>')

def post(self):
self.redirect('/pageTwo')

class PageTwoHandler(webapp2.RequestHandler):
def get(self):
self.response.write('Hello, You are in the Second Page! Get method')
def post(self):
self.response.write('Hello, You are in the Second Page! Post method')

好吧,当我尝试访问三个页面之一时,我得到了预期的结果,例如,如果我在浏览器中输入以下地址:http://localhost:13080/,我会得到结果是主页,如果我输入这个地址:http://localhost:13080/pageOne我会得到第一页,如果我输入这个地址:http://localhost:13080/pageTwo 我按预期得到了第二页。

现在,我的问题是,当单击第一页中的 Click Me 按钮时,会发送 HTTP POST 请求,并且 PageOneHandler的 post 方法被执行,它应该将我重定向到 pageTwo 并且确实如此!我们可以在控制台中看到证明:

INFO     2014-03-13 10:36:47,831 module.py:612] default: "GET /pageOne HTTP/1.1" 200 405
INFO 2014-03-13 10:37:08,606 module.py:612] default: "GET /pageOne HTTP/1.1" 200 409
INFO 2014-03-13 10:37:32,065 module.py:612] default: "POST /pageOne HTTP/1.1" 302 -
INFO 2014-03-13 10:37:32,090 module.py:612] default: "GET /pageTwo HTTP/1.1" 200 45

但我仍然在同一页面(/pageOne)。那么为什么我没有获取 pageTwo 的 get 方法中包含的文本?

谢谢。

最佳答案

简短的回答是,如果您发出POST,它将被重定向。使用您的浏览器请求,而不是使用 jQuery.post() 。例如,如果您有 <form action="/pageOne" method="post">...并在不使用 JavaScript 的情况下提交此内容,您将看到它最终会带您到 pageTwo ,但是当您使用 JS 执行此操作时,它不会更改 location 自动。

如果您无论如何都想尝试您的方法,请阅读 How to manage a redirect request after a jQuery Ajax call 上的更多内容。 .

关于jquery - 使用 python、jQuery 和 AppEngine 对按钮单击响应进行重定向(使用 http post),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22376236/

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