【发布时间】:2016-10-14 10:58:41
【问题描述】:
我在 MobileFirst Foundation 8.0 中遇到问题,其中 POST 请求中的参数未在适配器中捕获,但在 GET 请求中该参数工作正常。
GET 请求示例
var url = "/adapters/samplePOST/unprotected/";
var resourceRequest = new WLResourceRequest(url, WLResourceRequest.GET);
resourceRequest.setQueryParameter("params","['value1','value2']");
resourceRequest.send().then(function(e){console.log(e)}, function(e){console.log(e)});
适配器端
function unprotected(user){
return {
result:JSON.stringify(user)
};
}
输出
{\"结果\":\"\"sd\"\",\"isSuccessful\":true}
POST 请求示例
客户端
var url = "/adapters/samplePOST/unprotected/";
var resourceRequest = new WLResourceRequest(url, WLResourceRequest.POST);
var data={"params": "['sd','ds']"};
resourceRequest.sendFormParameters(data);
resourceRequest.send().then(function(e){console.log(e)}, function(e){console.log(e)});
适配器端
function unprotected(user){
return {
result:JSON.stringify(user)
};
}
输出
{\"isSuccessful\":true}
在POST请求适配器端,参数为undefined。
另外,在我的开发控制台中 -> 大摇大摆地,如果我点击 POST 请求表单查询 [{"params": "['sd','ds']"}] 它工作正常,但从科尔多瓦应用程序无法解析参数,但在同一个科尔多瓦应用程序 GET 请求工作正常。
【问题讨论】:
-
如果您在 POST 调用中尝试查询参数会怎样?这工作正常吗?
-
.setQueryParameter用于 GET 请求。使用 POST 会给出“不支持的媒体类型”。我相信@deena117 可能在这里偶然发现了一个缺陷...... -
您发送了两次请求。一次使用表单正文,一次没有正文。
标签: javascript post ibm-mobilefirst mobilefirst-adapters