AJAX调用后的渲染问题

AJAX调用后的渲染问题,ajax,redirect,browser,Ajax,Redirect,Browser,我正在使用瓶子微框架(但我怀疑我的问题来自它) 首先,如果我定义一个从/test\u重定向到/x的简单重定向,它就可以工作了。所以瓶子重定向()在简单的情况下有效 现在我有了一个使用条带签出(自定义表单)的页面/购买,它指向我的服务器/条带进程 基本上,Stripe Checkout验证信用卡交易,创建令牌并将其发布到my/Stripe\u进程 /stripe_进程完成了它的工作(调用stripe向卡收费),然后当交易成功时,我使用指示瓶: redirect('/transaction_summ

我正在使用瓶子微框架(但我怀疑我的问题来自它)

首先,如果我定义一个从/test\u重定向到/x的简单重定向,它就可以工作了。所以瓶子重定向()在简单的情况下有效

现在我有了一个使用条带签出(自定义表单)的页面/购买,它指向我的服务器/条带进程
基本上,Stripe Checkout验证信用卡交易,创建令牌并将其发布到my/Stripe\u进程

/stripe_进程完成了它的工作(调用stripe向卡收费),然后当交易成功时,我使用指示瓶:

redirect('/transaction_summary')
我的Web服务器日志显示确实调用了/transaction_摘要并处理了服务器端脚本(我在脚本中添加了标志以检查这一点),并返回了其模板(浏览器“网络”分析给出了303,然后是200 on/transaction_摘要,我甚至得到了正确的响应数据:似乎100%正常),但在浏览器页面上什么也没发生(我仍然有我的初始页面/buy-in url字段,而不是重定向到/transaction\u summary):浏览器收到了/transaction\u summary响应,在Chrome devtools预览模式下可以看到预览,但没有显示它

另外,如果在/stripe_进程中,我使用简单的返回模板()更改重定向(),则会出现相同的问题:浏览器不会处理任何数据

有线索吗?在100%我的测试中观察到这种行为:
-Firefox/Windows
-Chrome/iOS 9(iPad)
-Chrome/linux
-Iceweasel/linux
-Chrome/Android
-铬/OSX

我怀疑这与Stripe Checkout接管某些东西有关(因为redirect()在我的简单测试中工作得很好),但我不知道原因以及如何解决这个问题

如果从Chrome devtools网络部分我转到最后一个操作(即/transaction\u summary下载)并在新选项卡中打开/transaction\u summary,它将完美呈现。
所以这不是瓶子的问题,也不是Web服务器的问题。我怀疑更多关于条带检出模式/弹出行为的信息

$(window).on('popstate',function(){handler.close();});作为stripe docs指令显示,但无论如何,stripe_处理程序在收到令牌后正确关闭(我使用handler.closed callback进行了检查…)

编辑:
如果我将redirect()替换为straight return template(),同样的问题是:html内容由浏览器下载,在预览时可用,但不会在主窗口中呈现

编辑2:
如果我在我的页面上添加a href到/test\u重定向到/x,它会起作用。
请注意,此手册在条带签出后重定向工作。这里条带序列的唯一区别是用户交互('click'on href),但由于我的重定向是同一个域,浏览器无论如何都不应该阻止重定向。

问题是,用于向/Stripe\u进程发送条带令牌的AJAX调用正在处理重定向响应。这就是为什么在网络上,我从Web服务器得到了200个答案,但所有html页面数据都进入AJAX回调并呈现。多亏托马斯让我对这个问题嗤之以鼻

解决方案是/stripe_进程在成功的情况下返回1(而不是服务器端redireduon),然后从AJAX成功回调进行重定向