【发布时间】:2015-07-10 23:57:22
【问题描述】:
我有一个 POST 到 python 文件的 javascript HTML 页面。 python 代码应该将 JSON 发送回 HTML。我只是不知道如何捕获 JSON 并解析它。如果我抓住它,我想我可以很好地解析它,而对于我的生活,我无法让它发挥作用。下面是 HTML 代码摘录以及 python 代码摘录。 JSON 甚至应该非常简单,只有一个值!
HTML 代码摘录:
<form action="http://www.MYURLHIDDENHERE.com/cgi-bin/new.py" id="form" method="post" enctype="multipart/form-data" target="resIframe">
<div style=" width: 0px; height: 0px; overflow: hidden;" >
<input type="hidden" name="random" id="random" value="">
<iframe src="" name="resIframe" id="resIframe" onload="iframeLoaded();" ></iframe>
</div>
这就是我试图抓住它的地方:
function iframeLoaded() {
var result = $.parseJSON($("#resIframe").contents().find("html").html())
.....
}
我想知道我是否对上面的“目标”内容做错了什么?如果我打印 $("#restIframe") 它只是一个 [object Object]。本质上,我不确定我是否在 HTML 中捕获 JSON 响应。
这里是py代码摘录:
#!/usr/bin/python -tt
# -*- coding: utf-8 -*-
import cgi, os
import cgitb; cgitb.enable()
form = cgi.FieldStorage()
data = {'score': 50}
print "Content-Type: text/html"
#print "Content-Type: application/json"
print
print json.dumps(data)
我在这方面花了几个小时并阅读了许多示例/博客,因此非常感谢任何帮助!
【问题讨论】:
-
$("#resIframe").contents().find("html").html()返回什么?通过$.ajax处理表单提交可能会更好。如果没有看到从 POST 返回的实际数据,就很难知道。您可以使用您的控制台并发布 PY 的 POST 数据返回吗? -
("#resIframe") 只是我要打印输出的特定 Iframe。我也尝试过 $jQuery.parseJSON 而不是 $.parseJSON ,但它们似乎都不起作用。我不认为 POST 实际上是向 HTML 文件返回任何内容——这就是问题所在!
-
如何在控制台中检查 PY 返回的 POST 数据是什么?
-
感谢 chrome 开发者工具!似乎对未来也非常有用 - 用它来检查返回的内容:它只是返回“null”。这似乎是问题所在。看起来我只是没有捕捉到应该由 PY 代码发回的 JSON。
标签: javascript jquery python html json