我正在使用 IBM Worklight Developer Edition 5.0.5 来尝试创建简单的(HTML 和适配器)应用程序,但面临未解决的问题。
这可能是旧论坛中没有回答的相同问题: http ://www.ibm.com/developerworks/forums/thread.jspa?threadID=460738
[环境] OS:Windows7 64bit(日文语言环境),Eclipse:4.2.1,Worklight:Developer Edition 5.0.5
[描述] 我在 Eclipse 中创建了 Worklight Project,没有任何外部库,如 jQuery mobile 或 Dojo。我在这个项目中添加了 HTTP 适配器和 SQL 适配器。当我尝试“运行为 ..-> 调用 Worklight 过程”时,两者似乎都可以正常工作。两者都返回了预期的 JSON。所以我认为适配器不会有问题。
但是当我从 HTML 文件中调用这些适配器时,我在 worklight.js(行:2380)中出现“未捕获的类型错误:无法使用 'in' 运算符在 null 中搜索 'SUPPORT_COOKIES'”错误。
[我的代码]
var invocationData = { 适配器:'SQLAdapter',过程:'getCount',参数:[] };
WL.Logger.debug("1: invocationData = " + invocationData);
WL.Client.invokeProcedure(invocationData, { onSuccess: loadFeedsSuccess, onFailure: loadFeedsFailure });WL.Logger.debug("2: loadFeeds");
函数 loadFeedsSuccess( 结果 ){ WL.Logger.debug( "3: 成功: 结果 = " + 结果); }
function loadFeedsFailure(result){ WL.Logger.debug("4: failure: result = " + result); }
[我的调试控制台输出]
1:invocationData = [object Object] worklight.js:1112
未捕获的类型错误:无法使用“in”运算符在 null worklight.js:2380 中搜索“SUPPORT_COOKIES”
wlclient init 启动 worklight.js:1112
之前:app init onSuccess worklight.js:1112
之后:app init onSuccess worklight.js:1112
wlclient 初始化成功
所以似乎只有第一个 WL.Logger.debug() 被成功调用,但 WL.Client.invokeProcedure() 似乎导致了Uncaught TypeError上面,它只是失败了(不调用成功案例回调,也不调用失败案例回调)。
这是一个 SQL Adapter 案例,但是当我尝试使用 HTTP Adapter 时,结果是一样的(在 WL.Client.invokeProcedure() 中失败)。同样,当我尝试“Run As .. -> Invoke Worklight Procedure”时,两者都会返回适当的结果。
我的控制台说这个失败发生在 worklight.js 的第 2380 行:
2379:isEnabled:功能(字段){
2380:返回!!(配置文件中的字段&&配置文件[字段]);
2381:}
所以我不知道我的代码会有什么问题。这个问题有什么想法/信息吗?感谢提前。
添加 了 Mac OSX 环境中也发生了相同的错误。