【问题标题】:angular POST not working with servlet角度 POST 不适用于 servlet
【发布时间】:2017-04-30 10:49:39
【问题描述】:

我正在尝试使用 angularjs POST(甚至 GET)到具有以下内容的 servlet:

var json = { hello: "world" }

var deffered = $q.defer();
$http({
    method: "POST",
    url: url,
    headers: { "Content-Type" : "application/json" },
    request: JSON.stringify(json)
}).then(data) {
     if(data.data) {
          deferred.resolve({
               response : data
          });
     )
})
return deffered.promise;

在 servlet 中,很简单:

String val = request.getParameter("request")

它似乎从来没有看到它 我试过了:

data: JSON.stringify({ request: json })
data: { request: json }
"request" : JSON.stringify(json)

如果我注释掉 getParameter 并使用 Gson 返回一个通用值

JsonObject json = new JsonObject();
json.addProperty("This", "works");
response.getWriter().print(new Gson().toJson(json));

这很好,所以我在这里做错了角 POST 中有什么东西吗?我也尝试过使用“GET”,但结果相同。

编辑:如果getParameter错误,我想了解POST方法和从json对象获取数据的“正确”方法~

【问题讨论】:

    标签: angularjs json ajax servlets


    【解决方案1】:

    getParameter() 返回 http 请求参数,你应该使用添加这个参数:

    params: JSON.stringify(json) 
    

    没有

    request: JSON.stringify(json)
    

    看看params in getparams in post

    【讨论】:

    • 不...应该是data 的帖子...阅读文档。并且在内部已经完成时无需字符串化
    • 是的,但他想访问 request.getParameter - 查询参数而不是发布数据。
    • 你怎么知道服务器代码没有错,意图是按照请求中使用的方法发帖.....“我正在尝试使用 angularjs POST”。您几乎没有提供任何解释
    • 他发布了试图访问查询参数的服务器代码,但没有添加任何查询参数。
    • 你没有解释你正在修复什么方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 2019-07-21
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多