簡體   English   中英

向Jax-rs服務發出Ajax Post請求

[英]Ajax Post request to a Jax-rs service

我正在嘗試從瀏覽器執行一個簡單的發布請求,並且在瀏覽器的控制台中顯示415 Unsupported Media ,在控制台中它也表示Typetext/html ,也許我在這里誤解了一些愚蠢的東西,但是我很認真從android客戶端執行發布請求,並且一切都可以在服務器端找到,所以我猜(因為我對js不熟悉),這是我在這里遇到的一個javascript問題,這是代碼中感興趣的部分:

ajax(此函數稱為send ,它在創建json之前做了一些事情,可以確定並測試了該部分,成功生成了json):

$.ajax({
        url: 'webresources/serverConfig/save/',
        type: 'post',
        dataType:'json',
        data: jsonObj
    });

我如何以HTML形式調用javascript:

<form action="javascript:send()"  method="post">

JAX-RS服務:

@Path("serverConfig/")
public class ConfigurationSaverService {

@POST
    @Path("save/")
    @Consumes(MediaType.APPLICATION_JSON)
    public void save(Configuration configuration){
    //config stuffs here.
}

Edit:由於@adrianplattner的回答,重要的是要說我正在使用glassfish 4.0 ,所以我不需要添加球衣的依賴項,我也嘗試了glashfish 3.1並仍然收到相同的HTTP錯誤。

EDIT 2:標頭:

 headers: { 
    'Accept': 'application/json',
    'Content-Type': 'application/json' 
},

您可以添加球衣依賴項:

 <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-json</artifactId>
     <version>1.11</version>
 </dependency>

那應該解決你的問題

jQuery.ajax()調用的默認Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8 application/x-www-form-urlencoded; charset=UTF-8 (請參閱文檔 ),但是您希望在JAX-RS資源中使用application/json 將您的調用的contentType參數設置為application/json

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM