如何在 cordova 应用程序中使用 POST 和 javascript 适配器?
How to use POST with javascript adapter from a cordova app?
我有一个现有的工作 javascript 适配器在我本地机器上的 Mobile Foundation 8.0 beta 中执行 POST
请求并迁移到 MobileFirst Foundation 8.0 GA 版本。
我遵循了这个问题的回答步骤:
现在我将适配器上传到 Bluemix 上的 MobileFirst Server。
我使用 swagger 测试了适配器 POST
,它工作正常,请参见下图:
当我从移动设备使用 POST 执行适配器时,我在 chrome 的调试中得到以下 ERROR:
当从客户端使用 GET
命令时,适配器本身正在工作。
问题是如何在客户端使用post命令?
客户端适配器调用实现:
POST 不工作
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.POST);
sendFeedbackRequest.setQueryParameter("params",[ExchangeData.feedback.body.user,ExchangeData.feedback.body.feedback]);
开始工作
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.GET);
sendFeedbackRequest.setQueryParameter(ExchangeData.feedback.body.user,ExchangeData.feedback.body.feedback);
适配器实现:
function sendFeedback(user, feedback) {
var document = {
body: {
user: user,
feedback: feedback
}
};
MFP.Logger.warn("User feedback inputs " + JSON.stringify(document));
var requestStructure = {
method : 'POST',
returnedContentType : 'plain',
path : 'submitFeedback',
body: {
contentType:'application/json; charset=UTF-8',
content: JSON.stringify(document)
}
};
MFP.Logger.warn("Preparing request structure " + JSON.stringify(requestStructure));
return MFP.Server.invokeHttp(requestStructure);
}
来自 @Idan Adar 的 基础教程 的 link 帮助修复了它,适用于我正在使用的适配器.
"sendFormParameters(formParams)" 不再是 "setQueryParameter("params", [user,feedback] )"
这是客户端的工作代码:
var formParams = {"params":"['" + theUser + "','" +
theFeedbackInformation + "']"};
console.log('>>> Feedback feedbackInformation: ', formParams);
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.POST);
sendFeedbackRequest.sendFormParameters(formParams);
我有一个现有的工作 javascript 适配器在我本地机器上的 Mobile Foundation 8.0 beta 中执行 POST
请求并迁移到 MobileFirst Foundation 8.0 GA 版本。
我遵循了这个问题的回答步骤:
现在我将适配器上传到 Bluemix 上的 MobileFirst Server。
我使用 swagger 测试了适配器 POST
,它工作正常,请参见下图:
当我从移动设备使用 POST 执行适配器时,我在 chrome 的调试中得到以下 ERROR:
当从客户端使用 GET
命令时,适配器本身正在工作。
问题是如何在客户端使用post命令?
客户端适配器调用实现:
POST 不工作
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.POST);
sendFeedbackRequest.setQueryParameter("params",[ExchangeData.feedback.body.user,ExchangeData.feedback.body.feedback]);
开始工作
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.GET);
sendFeedbackRequest.setQueryParameter(ExchangeData.feedback.body.user,ExchangeData.feedback.body.feedback);
适配器实现:
function sendFeedback(user, feedback) {
var document = {
body: {
user: user,
feedback: feedback
}
};
MFP.Logger.warn("User feedback inputs " + JSON.stringify(document));
var requestStructure = {
method : 'POST',
returnedContentType : 'plain',
path : 'submitFeedback',
body: {
contentType:'application/json; charset=UTF-8',
content: JSON.stringify(document)
}
};
MFP.Logger.warn("Preparing request structure " + JSON.stringify(requestStructure));
return MFP.Server.invokeHttp(requestStructure);
}
来自 @Idan Adar 的 基础教程 的 link 帮助修复了它,适用于我正在使用的适配器.
"sendFormParameters(formParams)" 不再是 "setQueryParameter("params", [user,feedback] )"
这是客户端的工作代码:
var formParams = {"params":"['" + theUser + "','" +
theFeedbackInformation + "']"};
console.log('>>> Feedback feedbackInformation: ', formParams);
var sendFeedbackRequest = new WLResourceRequest(
"/adapters/SendFeedback/sendFeedback",
WLResourceRequest.POST);
sendFeedbackRequest.sendFormParameters(formParams);