我有CGI python程序提供HTML作为内容(而不是URL)。流程是:
1. open http://jioworld.jioconnect.com/cgi-bin/loginpp.py
2. you get HTML form (since you have not yet login)
3. enter some dummy user and password and submit
4. you stay on same page after submit even though response html is served. So the page (response) is not rendered by browser but cookie is set
5. reload the page (hit refresh/reload)
6. page is rendered我的问题是:为什么页面不在步骤4中呈现,而在重新加载时在步骤6中呈现。
我希望第4步能够呈现页面。
我已经尝试过相对的、绝对的链接,比如样式表、javascript、图片等等,但似乎只有绝对的链接才能比其他的更好。这又是一个问题,因为我也尝试了将html的基本标签设置为/,但它不起作用。图像等解析为cgi-bin/images而不是/images。因此,我将所有URL设置为绝对可能,从而导致基本标记被忽略。因此,我然后设置基础标签,也为主机的完整URL。
发布于 2014-09-25 03:34:31
图像等解析为cgi-
/,而不是/images。
这很容易修复。当服务器运行您的脚本时,它会将脚本的当前工作目录(CWD)设置为cgi-bin。我相信服务器这样做是一种常见的约定,尽管我怀疑有一个Apache配置可以更改它。
我已经有几年没有使用Apache了,所以我有点生疏了,但我偶尔会使用几个基本的Web服务器。其中一台服务器在cgi-bin中启动脚本,另一台在服务器的CWD中启动脚本,所以我将以下代码放在我的CGI脚本中:
#Change to parent dir if we're in cgi-bin,
if os.path.basename(os.getcwd()) == 'cgi-bin':
os.chdir('../') 但是我不确定如何解决你列表中的第四步的问题。
通常,你会像这样发送一些内容
'<meta http-equiv="REFRESH" content="0;url=%s">' % href
到浏览器,其中url是页面的url。但我不知道这对你是否有效。
如果我们能看到你的CGI脚本,或者至少是一个说明这个问题的简化版本,也许会有所帮助。
https://stackoverflow.com/questions/26023525
复制相似问题