【问题标题】:Javascript post String with ajax to backend(java)Javascript将带有ajax的字符串发布到后端(java)
【发布时间】:2018-11-27 04:58:48
【问题描述】:

我正在为 Web 客户端编写一个评论框。

我有两张桌子,一张用于Comments,一张用于Users。我想将输入数据从我的<input> 标记以 HTML 形式发送到我的 Java 服务。在这个服务中,我处理接收到的数据。我现在的问题是,我收到一个 HTTP-415 错误,我现在不知道该怎么做。

我在 JavaScript 中使用 AJAX 来发布数据。

HTML

ID: <input type="text" name="id" value="1" readonly/> <br/>
Author: <input type="text" name="author"/> <br/>
comment: <input type="text" name="comment"/> <br/>
<button id="submit" type="Button" >Submit</button>

Javascript

function addPost(givenID){
var $author = $("#author");
var $comment= $("#comment");
var $id = $("#id")

$("#submit").on("click", function(){

         var post = $author.val()+"*"+ $id.val()+"*"+ $comment.val();

    $.ajax({
        type: "POST",
        url: "api/kommentar",
        data: post,

        success: function(){
            console.log("SUCCESS");
        },
        error: function(){
            console.log("FAILIURE");
        }
    });


});} 

Java

@Path("/kommentar")
public class KommentarService {

@EJB
private KommentarManagement postMgmt;

public KommentarService() { }

@POST  
@Consumes("text/plain")
public void addPostsAsJson(String income) {
    System.out.println(income);
 //CODE TO HANDLE...
}

【问题讨论】:

  • 您使用了$("#author"),但author 是您输入标签的名称而不是id。另外,您可以尝试在 Ajax 调用中添加Content-Type 吗?
  • 错误代码415 表示您没有指定有效/支持的媒体类型,例如:html 或 json。你可能想看看this

标签: javascript java json ajax jakarta-ee


【解决方案1】:

jQuery 的 Ajax 函数的默认内容类型是 'application/x-www-form-urlencoded;字符集=UTF-8'。 因为服务需要'text/plain',所以内容类型需要改变。

添加内容类型:

data: post,
contentType: 'text/plain',  //<--- insert
success: function(){

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 1970-01-01
    • 2016-02-25
    • 2015-10-21
    • 1970-01-01
    • 2019-10-11
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多