什么是Firebug告诉我我的HTTP POST错了?

时间:2015-03-04 00:59:21

标签: post firebug symfony-forms

我试图弄清楚我的POST数据或Ajax调用有什么问题。

我使用Symfony创建表单,使用Ajax来收集和传递数据。每次我发出POST请求时,我都会使用Firebug的 Net 面板来查看我的POST数据。我的POST在某个地方破了,但我不知道在哪里。我在这里看到的唯一一件事就是当我看到Firebug时,我看到每个示例的POST看起来都不同(参数存在于一个中,而不存在于另一个中),但它们应该是相同的,对吧?这是一个线索吗?我不知道如何解释这一点,我对Firebug知之甚少,对于这个特殊问题,这显然不够直观。

这是告诉我我的数据编码不正确吗?

这是一个非工作的例子。注意,缺少“参数”。我所看到的只是“源”序列化/编码数据:

broken form

现在,在下面的示例中,这是我期望看到的。请注意,这个不仅包含“Source”部分,而且源数据看起来相同(但可以使用第二对眼睛),但还有另一个部分称为“参数”。为什么在第一个例子中难以捉摸这个缺失的“参数”是什么意思?

proper working form proper form 2nd half

我也在这里附上标题。也许这可以解释这个问题。现在在这里发布这些内容我确实看到了不同的Content-Type,但我认为我的大部分测试都是在发送标题之前完成的。

损坏的表单标题broken form

工作表单标题working form

POST数据有什么问题,或者我可能错过了Ajax dataType: 'json',还是什么?

1 个答案:

答案 0 :(得分:0)

如果标题中设置了错误的内容类型,则在Firebug中发回数据并进行检查时,它不能将它们作为参数拉出,除非它知道其格式编码数据。如果标题声明了不同的类型,那么如果数据 确实形成了url编码,那么浏览器不会这样解析它,因此无法将其分解为其参数元素。

因此,当您拨打电话时,请确保在Ajax通话中将内容类型作为'application/x-www-form-urlencoded'发送。