2

我们有以下问题:

从 AJAX 调用的 CFC 方法突然将请求重定向到 cfcexplorer,而不是执行请求。奇怪的是,只有当我们通过“POST”方法进行 ajax 调用时才会出现问题,如下所示:

// This will return the HTTP Status header:
// Location: http://url.to:80/CFIDE/componentutils/cfcexplorer.cfc?method=getcfcinhtml&name=web.ajax&path=/web/ajax.cfc
$.post(
    "http://url.to/ajax.cfc",
    {method: "test"},
    function(res) { alert("ajax.cfc POST return:"  + res); }
);

发出与“GET”请求相同的请求非常有效:

// This will call the method "test" of web/ajax.cfc
$.get(
    "http://url.to/ajax.cfc",
    {method: "test"},
    function(res) { alert("ajax.cfc GET return:"  + res); }
);

这是 ajax.cfc 文件(虚拟文件):

<cfcomponent>
    <cffunction name="test" access="remote" returntype="Any" returnformat="JSON">
        <cfset j = {}>
        <cfset j.data = "this is the data">
        <cfreturn serializeJson(j)>
    </cffunction>
</cfcomponent>

真正让我们感到困惑的是该请求在过去确实有效(我们有很多代码都通过 POST 和 CF 代码进行 ajax 调用,期望 FORM-data 存在,所以我们不能简单地将方法更改为 GET)

也许有一些设置已经改变或类似......

4

2 回答 2

1

我们确实找到了解决方案:我们的 apache 服务器出现问题!所有 POST 数据在转发到 Coldfusion 之前都丢失了 - 因此 FORM 变量始终为空。

修复配置后(我不知道该怎么做......)问题就解决了。

于 2013-10-22T09:51:05.243 回答
0

我正在使用 IIS,它可以很好地执行 ajax 调用等。APACHE 有什么问题?

于 2013-10-22T16:45:59.127 回答