【问题标题】:Calling a javascript adapter from javascript client gets 415 Unsupported Media Type response从 javascript 客户端调用 javascript 适配器得到 415 Unsupported Media Type 响应
【发布时间】:2018-05-30 18:49:05
【问题描述】:

在 MFF8.0 中,从 javascript 客户端调用 javascript 适配器会得到 415 Unsupported Media Type 响应。 客户端代码:

    var parameters = [{ 'project_code': '123', 'name': 'ABC', 'type': 'A' }];
    var resourceRequest = new WLResourceRequest("/adapters/myAdapter/search, WLResourceRequest.POST);
    resourceRequest.setTimeout(60000);
    resourceRequest.setHeader("Content-Type", "application/json;charset=utf-8");
    if (parameters === undefined) {
        resourceRequest.send().then(function(res){
            dfd.resolve(res);
        },function(){
            dfd.reject();
        });
    } else {
        resourceRequest.send(parameters[0]).then(function(res){
            dfd.resolve(res);
        },function(){
            dfd.reject();
        });
    }

javascript 适配器:

function search(p) {
  MFP.Logger.info(“searching…”);
  if (p) {
    var pj = checkDefaultValue(p.project_code);
    var name = checkDefaultValue(p.name);
    var type = checkDefaultValue(p.type);
    return search(pj,name,type); // this returns Javascript object
  } else return {};
 }

在服务器端,不产生“正在搜索……”等日志,响应码为415。 我该如何解决这个问题?

【问题讨论】:

  • 您是否有任何输入/输出过滤器正在验证输入?您可以共享网络跟踪吗?看起来适配器没有被调用,我相信响应是从其他层给出的

标签: javascript ibm-mobilefirst


【解决方案1】:

您应该将资源请求的 Content-Type 设置为 application/x-www-form-urlencoded。

在您的代码中添加这一行

resourceRequest.setHeader('Content-Type','application/x-www-form urlencoded');

参考duplicate SO thread

【讨论】:

  • 我按照您的建议更新了“Content-Type”标头,但结果没有改变。仍然收到 415 Unsupported Media Type 响应。
  • 您是否有任何输入/输出过滤器正在验证输入?您可以共享网络跟踪吗?看起来适配器没有被调用,我相信响应是从其他层给出的——
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
  • 2020-11-14
  • 1970-01-01
  • 2020-02-18
  • 2017-11-16
  • 2021-07-16
  • 1970-01-01
相关资源
最近更新 更多