ibm-mobilefirst - MobileFirst Platform JavaScript 适配器无法通过 WLResourceRequest 获取参数

标签 ibm-mobilefirst mobilefirst-adapters

我正在使用 mobilefirst 平台 v7,我使用 WLResourceRequest/sendFormParameters api 发送发布请求,但是,我无法从 js 适配器端获取提交的参数...

下面是示例代码:

var resourceRequest = new WLResourceRequest("adapters/businessAdapter/flightsearch", WLResourceRequest.POST);
var params={
        "flightNum":'mu8899',
        "departCity":'SHA',
        "destCity" :'PEK'
};
resourceRequest.sendFormParameters(params).then(
        callSuccess,
        callFailure
);

js适配器代码:

function flightsearch(params) {
   WL.Logger.info("get params "+params);


    var input = {
        method : 'post',
        returnedContentType : 'json',
        path : 'restapi/api/flightsearch',
        body :{
            contentType: 'application/json; charset=utf-8',
            content:params
        },
        headers: {"Accept":"application\/json"} 
    };

    return WL.Server.invokeHttp(input);
}

最佳答案

您使用的语法适用于 Java 适配器。

但是,对于 JavaScript 适配器,过程参数的处理方式不同。

首先,您的适配器过程应该定义它期望的参数:

function flightsearch(flightNum, departCity, destCity) {
///
}

其次,此过程将使用 HTTP GETPOST 触发,并带有一个名为 params 的参数,该参数需要包含一个数组,以正确的顺序表示所有过程参数:

params:["mu8899","SHA","PEK"]

现在使用 JavaScript,这将转换为:

var resourceRequest = new WLResourceRequest("adapters/businessAdapter/flightsearch", WLResourceRequest.POST);
var params=[
        'mu8899',
        'SHA',
        'PEK'
];
var newParams = {'params' : JSON.stringify(params)};
resourceRequest.sendFormParameters(newParams).then(
        callSuccess,
        callFailure
);

如您所见,我们首先以正确的顺序构建 JSON 数组(注意,array 而不是对象),然后将其转换为 String 并使用参数名称 ' 参数'.

关于ibm-mobilefirst - MobileFirst Platform JavaScript 适配器无法通过 WLResourceRequest 获取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30044473/

相关文章:

java - IBM Worklight 6.0 - 在 native Android 应用程序中调用 WL.Client.Login

javascript - 使用 sql 适配器进行删除操作时出错

android - MobileFirst 应用程序在设备锁定时运行?

cordova - MobileFirst 8 - WLResourceRequestPlugin 错误 - JWT 格式不正确

java - 如何在 Worklight SOAP 适配器过程中传递 SOAP header 参数?

当 mfp 服务器关闭时 iOS 应用程序崩溃

IBM worklight 不显示 css 背景图像

swift - Xcode 7.3 更新错误 : "Use of unresolved identifier WLHttpMethodGet"

javascript - IBM Worklight - 使用 jQuery 进行表单验证

android - 如果我们在 android native 代码中并行调用两个 WLResourceRequests 会发生什么。(IBM MobileFirst)