0
我有一個REST Web服務返回一個JAXB對象。我已經爲該方法提供了一個Mediatype作爲JSON。我正在使用ajaxForm插件將一些數據發送到此WebService。REST返回xml
問題是,儘管在Web服務中給予JSON作爲mediatype,並且在客戶端javascript中將其作爲dataType,但我仍然只獲取xmlDocument作爲返回的對象。
這是web服務簽名。我正在使用Glassfish 3.1,並且所有功能都得到了正確執行(在server.log中看到了消息)。
@Path("GetJson")
public class GetJson
{
private static Logger logger = Logger.getLogger("GetJson");
@POST
@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
public Exceldatalist getJson(@Context HttpServletRequest request)
{
這是客戶端代碼。形式是:
<form id="form3" action="http://comp1:8080/RestWSGS/jersey/GetJson" style="display:none"
enctype="multipart/form-data" method="post">
<input id ="username" name="username" type="hidden" />
<input id ="purpose" name="purpose" type="hidden" value="new" />
<input id ="filename" name="filename" type="hidden" />
<input id ="password" name="password" type="hidden" value="abc"/>
<input id ="company" name="company" type="hidden" value="Third"/>
<input id ="ignoreSheet" name="ignoreSheet" type="hidden" />
<input type="submit" style="display:none" />
</form>
給ajaxForm電話是:
$('#form3').ajaxForm({
url: 'http://comp1:8080/RestWSGS/jersey/GetJson',
async: false,
type: 'POST',
cache: false,
dataType: 'json',
contentType: "multipart/form-data",
processData: false,
success: function(data)
{
myData = data;
alert('success '+myData);
}
});
除了這隻有對提交()爲形式的通話。
我不明白我做錯了什麼。我在這裏卡住了一段時間... 請幫我解開這個!
kavita
REST Web服務是由您託管的還是由其他某些代理機構或客戶託管? – AmGates
comp1上的相同服務器:8080 – kavita
因此,您必須將服務器響應更改爲JSON對象,而不是將其作爲JAX(即)XML對象發送。您的客戶端代碼是正確的,但REST服務器必須以JSON發送響應。 JAX僅以XML格式發送。你已經手動處理它以JSON的形式發送它。 – AmGates