我如何使用 ajax 函数重定向到另一个页面,而无需将该页面回调到 ajax 函数参数目标 div?

How can i redirect to another page using the ajax function without having that page called back to the ajax function argument target div?

我正在使用 ajax 函数从视图的文本字段上的用户获取注册密钥到控制器,应该发生的是,如果注册密钥有效,则用户应该是重定向到另一个页面,允许他们正常使用应用程序。执行重定向的控制器函数不会重定向到新页面,而是打开用户应该在目标 div 中重定向到的页面,它应该显示不正确的代码消息。如果注册密钥按预期正确并且仍然能够在需要时在相关 div 中显示不正确的代码消息,我如何才能覆盖这种情况并能够将用户重定向到一个全新的页面?

风景

<div id="code">
  <input id="regcode"  maxlength="10" type="text" class="field" name="regCode" autocomplete="off" onkeyup="ajax('product_key_entry', ['regCode'], 'regCodeTarget')" placeholder="Enter Product Key"/><br />
                <div id="regCodeTarget"></div>

控制者

def reg_key_entry():
    key_exists = not db(db.regKeys.regKey == request.vars.regCode).isempty()
    if key_exists:
        #A used reg key should get deleted so that it cant be used twice
        db(db.regKeys.regKey == request.vars.regCode).delete()
        redirect(URL('index'))
    else:
        return DIV("INCORRECT PRODUCT KEY", _id="regCodeTarget", _style="color: white; border: solid 1px red; width: 160px; background-color: red; font-weight: bold; padding: 3px; border-radius:5px;")

我希望实现的是让用户在输入正确的注册码时被重定向到新定义的页面,而不是现在当注册码正确时他们应该被重定向到的页面在同一页面中调用目标 div 他们应该从中重定向!

你可以这样做:

redirect(URL('index'), client_side=True)

使用 client_side=True,而不是服务器返回 303 重定向响应,它 returns 一个特殊的 header,并且 client-side Javascript 处理重定向(通过更改 window.location)。

http://web2py.com/books/default/chapter/29/04/the-core#HTTP-and-redirect