我有两台服务器,开发和生产,都运行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%运行。
有关问题的任何建议吗?
由于
答案 0 :(得分:0)
显然,在我从ajax请求中删除了dataType:'json'后,它开始工作了!
甜蜜的妈妈。我想知道为什么在制作vs开发时这么奇怪。感谢。
答案 1 :(得分:0)
我想我知道这个问题,几年前我遇到过这个问题。您必须在JSON之前发回正确的标头。在开始输出任何内容之前尝试其中一个:
<cfcontent type="application/json; charset=utf-8">
这样,jQuery就能够正确地将其识别为从服务器返回的JSON。如果你告诉jQuery期望json,并且服务器没有发送这个头,有时它会有点混淆:/
希望这有帮助!