Coldfusion cfc返回json数据错误和问题

时间:2011-03-17 14:15:35

标签: ajax jquery coldfusion coldfusion-8

我有两台服务器,开发和生产,都运行IIS7和Coldfusion 8 Standard。

然而,在制作过程中,整个网站都是ssl,除了登录之外的所有页面都是ssl。

我正在进行半冷敷/半ajax供电的网站搜索。

我们的开发服务器上的一切运行顺利,当转移到生产环境时,我开始出现非常奇怪的错误。

就像数据不是以json格式返回数据的事实一样,即使返回类型= json,并且我在返回数据的数组周围有serializejson。

然后,当我尝试删除returntype = json时,它总是会说无效令牌。

当调用ajax时,它确保指定json的数据类型,并在url中指定json的returnformat。所有这些在我们的开发服务器上运行良好,但是ajax部分拒绝在生产上工作。

起初我以为是因为存在ssl问题,如果ajax url是ssl,那么它就是错误说出access-origin同源策略,那么我将ajax url更改为non-ssl,并且然后它确实数据不是返回json,或者是无效令牌。

在我的cfc中,我有一个主要的cfc,可以获得我需要的所有数据,以我需要的各种方式格式化它,然后将这些结果放入数组内的不同位置。

然后运行

我试图在cffunction命令中删除returntype = json,当我尝试直接在url中查看cfc时,这似乎有效。但是当ajax调用它时,它要么说无效令牌。

当我在dev上运行相同的代码时,没有错误,所有ajax都可以100%运行。

有关问题的任何建议吗?

由于

2 个答案:

答案 0 :(得分:0)

显然,在我从ajax请求中删除了dataType:'json'后,它开始工作了!

甜蜜的妈妈。我想知道为什么在制作vs开发时这么奇怪。

感谢。

答案 1 :(得分:0)

我想我知道这个问题,几年前我遇到过这个问题。您必须在JSON之前发回正确的标头。在开始输出任何内容之前尝试其中一个:

<cfcontent type="application/json; charset=utf-8">

这样,jQuery就能够正确地将其识别为从服务器返回的JSON。如果你告诉jQuery期望json,并且服务器没有发送这个头,有时它会有点混淆:/

希望这有帮助!