我们有一个使用 Ext.NET 作为界面的网站
此接口的一部分使用 Ext.NET DirectMethods 从 JavaScript 调用触发 C# 代码。例如...
c#代码...
[DirectMethod]
public static void ExampleDirectMethod(string variablePassed)
{
}
js代码...
var runTest = function() {
Ext.net.DirectMethods.ExampleDirectMethod('testing', {
success: function (result) {
console.log((new Date()) + ' - ExampleDirectMethod - result = success');
},
failure: function (result) {
console.log((new Date()) + ' - ExampleDirectMethod - result = ' + JSON.stringify(result));
}
});
}
此代码工作正常,直到我将网站设置为通过 CloudFlare 运行
当网站通过 cloudflare 运行时,我可以看到由我的
runTest()
函数触发的 ajax 调用,但结果不是 json 字符串,而是我正在运行页面的页面的 html
正常的 AJAX 调用工作正常,只是这些 Ext.net.DirectMethod 调用失败了
我在互联网上找不到任何其他人有类似问题的痕迹
更新:我能够使用以下代码使 static DirectMethods 工作,但非静态方法仍然失败
protected override void OnPreInit(EventArgs e)
{
if (Request.QueryString["_dc"] != null)
{
DirectMethodHandler handler = new DirectMethodHandler();
handler.ProcessRequest(HttpContext.Current);
}
}
https://github.com/extnet/Ext.NET
Ext.NET 已于 2023 年 12 月 15 日终止生命,不再进行维护。