我有3个AJAX函数可以在我的网站上的Django应用程序和浏览器中的一些使用YUI的JavaScript之间移动数据。他们之间在结构,概念,代码等方面没有很大的区别。其中2个工作正常,但在第三个中,我收到了一个虚假的HTTP请求。其POST数据包含预期请求的POST数据的子集。请求元数据除CONTENT_LENGTH(显然)和CONTENT_TYPE是'text/plain;字符集= UTF-8'为意图和'application/x-www-form-urlencoded'为不需要的请求。我没有明确地设置内容类型,似乎表明这两个请求不具有相同的来源,而第二个请求只是简单地弹出。Django:如何追踪虚假的HTTP请求?
预期的请求集HTTP_CACHE_CONTROL':‘无缓存’和‘HTTP_PRAGMA’:‘无缓存’,杂散一个没有。这两个请求的dev服务器日志输出是
[15/Feb/2010 15:00:12] "POST /settings/ HTTP/1.1" 200 0
最后的0表示什么意思?找不到任何文件。这个值通常是非零的......在Apache中,它是服务器响应的总大小(以字节为单位),有人可以证实它与Django相同吗?
我的问题显然是找出这个额外的请求来自哪里。
我相当熟悉的JS调试使用Firebug我觉得我擅长Python和Django的,但我不知道了很多关于HTTP请求和响应的内部。我可以断点并逐步通过发送预期的XMLHTTP请求的JS代码,但该断点不会再次受到攻击。
既FF3和Safari出现的问题,我在雪豹,所以我不能用IE或Chrome测试。 我看过Django调试技术和工具,如http://robhudson.github.com/django-debug-toolbar/,但我想我已经有了他们可以给我的信息。
有人可以建议一个策略或工具来缩小问题的范围吗?
的0在最后看到的是HTTP响应,IIRC的大小。你有Firebug或类似的调试器/检查器启用?这可能是由于双方都在做这件事。 另外,是否有一个回调附加到您的AJAX请求,正在触发和POSTing一次主要通话完成后? –
我确实安装了Firebug,并且我正在使用它来分析网络选项卡中的HTTP请求,但是我发现Safari的错误... 关于回调,我必须再次锁定代码(don现在没有它),但是必须有代码发送xhr,并且xhr.send(...)上的断点没有任何一个被触发... 到目前为止,它看起来确实看起来像请求从无处。 – ssc
再次检查了代码,这三个Ajax请求都有回调,但没有一个会触发另一个请求。 另外,我注意到在Firebug网络标签中,我只能看到虚假请求,而不是预期的请求。虽然可能是一个Firebug错误。 – ssc