首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CGI serving HTML未呈现

CGI serving HTML未呈现
EN

Stack Overflow用户
提问于 2014-09-25 02:03:03
回答 1查看 304关注 0票数 1

我有CGI python程序提供HTML作为内容(而不是URL)。流程是:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2014-09-25 03:34:31

图像等解析为cgi-

/,而不是/images。

这很容易修复。当服务器运行您的脚本时,它会将脚本的当前工作目录(CWD)设置为cgi-bin。我相信服务器这样做是一种常见的约定,尽管我怀疑有一个Apache配置可以更改它。

我已经有几年没有使用Apache了,所以我有点生疏了,但我偶尔会使用几个基本的Web服务器。其中一台服务器在cgi-bin中启动脚本,另一台在服务器的CWD中启动脚本,所以我将以下代码放在我的CGI脚本中:

代码语言:javascript
复制
#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脚本,或者至少是一个说明这个问题的简化版本,也许会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26023525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档