[英]Ajax Post request to a Jax-rs service
我正在嘗試從瀏覽器執行一個簡單的發布請求,並且在瀏覽器的控制台中顯示415 Unsupported Media
,在控制台中它也表示Type
是text/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-Type
是application/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.