遗漏的类型错误:不能使用“在”操作来搜索空“SUPPORT_COOKIES”(Uncaught Ty

2019-08-17 07:29发布

我使用IBM工作灯开发版5.0.5尝试创建简单(HTML和转接器)应用程序,但面临未解决的问题。

这可能是未在老论坛上回答了同样的问题: http://www.ibm.com/developerworks/forums/thread.jspa?threadID=460738

[环境] OS:Windows7的64位(日文环境)时,Eclipse:4.2.1,工作灯:开发版5.0.5

[说明]我创建工作灯项目在我的Eclipse,没有像jQuery移动也不道场任何外部库。 我添加HTTP适配器和SQL适配器到这个项目中。 双方似乎很好地工作,当我尝试“运行方式.. - >调用工作灯程序”。 无论返回预期的JSON。 因此,我不认为会有在适配器的一个问题。

但是,当我把这些适配器从HTML文件,我得到了“遗漏的类型错误:‘在’运营商不能用于搜索在零'SUPPORT_COOKIES”错误的worklight.js(行:2380)。

[我的代码]

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:成功:结果=” +结果); } }

功能loadFeedsFailure(结果){WL.Logger.debug( “4:失败:结果=” +结果); } }

[我调试控制台输出]

1:invocationData = [对象的对象] worklight.js:1112

遗漏的类型错误:不能使用“在”操作符来搜索在空worklight.js“SUPPORT_COOKIES”:2380

wlclient init启动的worklight.js:1112

前:应用程序初始化的onSuccess worklight.js:1112

后:应用初始化的onSuccess worklight.js:1112

wlclient初始化成功

因此,似乎只有第一WL.Logger.debug()调用成功,但WL.Client.invokeProcedure()似乎会导致上述遗漏的类型错误 ,它只是失败(不叫成功案例的回调,也没有故障情况下的回调)。

这是一个SQL适配器的情况下,但是当我tryed使用HTTP适配器,结果是相同的(失败WL.Client.invokeProcedure())。 再次,两者的回报相应的结果,当我尝试“运行方式.. - >调用工作灯程序”。

我的控制台说,这种失败worklight.js的2380线发生:

2379:的IsEnabled:功能(场){

2380:返回!!(在文件字段&&轮廓[场]);

2381:}

所以,我不知道什么是错我的代码。 是否有此问题的任何想法/信息? 谢谢提前。

在Mac OSX版环境下发生的加入同样的错误了。

Answer 1:

我发现是什么原因导致我的问题。

当访问适配器,我编辑我的javascript直接HTML文件里,使用<script>标记在自动生成的<script>标记的最底部,并试图创建初始页面。 我认为,是不是工作灯适当的方式。 我不知道什么是错的究竟,但一切都准备在我的javascript代码可以加载。

现在我改变了我的代码。 我感动我的javascript,这曾经是HTML里面,在(项目名)的.js wlCommonInit()函数的最底部 。 目前,它似乎并没有错误消息做工精细像以前一样,并检索通过适配器预期的信息。 这可能是一个合适的方式。



Answer 2:

调用工作灯API,如和应该采取wlCommonInit只调用之后进行。

驻留在你的应用程序的主JavaScript文件(你的项目\您的应用程序\ JS \应用name.js)。



Answer 3:

要解决这类问题,我们需要的时候,我们调用的第一个适配器调用查看。 我们需要推迟适配器呼吁更多像秒钟1000毫秒。 然后,当你喜欢你的应用程序将运行。

setTimeout(function(){
$(document).ready(function() {

    var invocationData = {
            adapter : 'Contract', 
            procedure : 'GetDropDownListForLogin'
    };
    console.log("Invocation data:" +invocationData);
    var options = {
            onSuccess : OnLogindataSucess,
            onFailure : OnLoginFail,
            };

    WL.Client.invokeProcedure(invocationData,options);


});

},1000);

请使用以下方式为第一个适配器来调用它能够解决您的问题。



文章来源: Uncaught TypeError: Cannot use 'in' operator to search for 'SUPPORT_COOKIES' in null