【问题标题】:Dojo /JSON post request on method with multiple parameters?多参数方法上的 Dojo /JSON 发布请求?
【发布时间】:2012-11-29 14:06:14
【问题描述】:

这应该是基础知识,但我在将来自 dojo 的多个参数发布到休息端点时遇到了麻烦。我的后端通过resteasy暴露了以下方法。

@POST()
@Path("/updateProduct")
@Consumes(MediaType.APPLICATION_JSON)
public void updateGeneralSettings(String session,Product product) {
    System.out.println("session"+session);
    System.out.println("product"+product.toString);
}

只要使用 Product 作为参数,就可以很好地工作。我还没有弄清楚如何用另一个参数构建一个 jason 字符串。产品数据只是从表单绑定,这是我想附加的一些附加参数(即会话)。

jsonData = dojo.toJson(product)

var handler = request.post(url, {
    data: jsonData,
    headers: {
        "Content-Type": 'application/json; charset=utf-8',
        "Accept": "application/json"
    }
});

如果你们能给我一些解决方案,不胜感激。

【问题讨论】:

  • 你是怎么得到这个产品的?是 'domForm.toObject()' 吗?
  • 由于“dojo.toJson(product)”的东西而给 +1,这救了我的命。似乎Dojo不喜欢你只传递一个“json”变量而不传递这个函数。

标签: javascript json rest dojo resteasy


【解决方案1】:

尝试将参数名称添加到您的方法签名中:

public void updateGeneralSettings(@FormParam("session") String session, @FormParam("product") Product product)

然后是这样的:

var handler = request.post(url, {
    data: {
      session: session,
      product: jsonData
    },
    headers: {
      "Content-Type": 'application/json; charset=utf-8',
      "Accept": "application/json"
    }
});

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 2019-03-18
    • 1970-01-01
    • 2018-08-08
    • 2012-12-14
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多