我们有以下问题:
从 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)
也许有一些设置已经改变或类似......