我与Django和活塞工作HTML,我创建了以下处理程序:活塞返回,而不是JSON
from piston.handler import BaseHandler
import datetime
import json
class NotificationHandler(BaseHandler):
allowed_methods = ('POST',)
def create(self, request, token):
return json.dumps(datetime.datetime.now())
使得该处理器的请求我收到一个HTML页面时:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>something</title>
<META name="description" content="something"><META name="keywords" content="something">
</head>
<frameset rows="100%,*" border="0">
<frame src="http://something.com/pay/notify/345345/" frameborder="0" />
<frame frameborder="0" noresize />
</frameset>
<!-- pageok -->
<!-- 03 -->
<!-- -->
</html>
它看起来像是将呼叫转移到框架集中。 不过我希望得到的东西,如:
"2012-01-11 00:17:24"
我使用的Apache与mod_wsgi的。 当从PyCharm IDE提供的服务器本地运行项目时,我得到预期的json值。
不知道为什么我得到不同的结果,因为我使用的是相同的脚本发出请求(具有相同的标题)。
什么会让活塞返回一个HTML页面,而不是原始的json字符串?它可能是一个头部?
它看起来并不像它打包的电话 - 如果是的话,你的日期时间仍然会在HTML中的某处。相反,它看起来像你的创建函数永远不会被调用(你可以通过在create方法中引发一个Exception来确认)。你确定请求到达处理程序吗? – 2012-01-11 05:47:47
我只知道,如果我写的服务地址为http:// /通知它工作得很好,但是如果我把HTTP:// /通知将返回所有的HTML代码,而不是进入处理程序。我还测试了它作为GET方法,如果我在浏览器中放入相同的URL,在查看网页源代码时会得到相同的结果,如果点击框架中的链接,我会得到我期望的结果(因为该URL是使用IP)。它看起来像域掩码是导致问题的原因。任何想法如何可以工作?我正在使用GoDaddy.com –
JPs
2012-01-11 23:34:14
我终于发现问题只能通过域转发来完成。我正在使用url掩码选项来添加frameset的html包装器。如果我删除这个选项,我可以从读取(GET)处理程序得到正确的响应。当使用POST时,它仍然会删除我发送的数据,而我正在获取GET。将不得不研究,但是,这不是一个蟒蛇/活塞问题。 – JPs 2012-01-12 04:21:49