我有一个返回 JAXB 对象的 REST Web 服务。我已将 Mediatype 作为 JSON 提供给该方法。我正在使用 ajaxForm 插件向这个 WebService 发送一些数据。
问题是,尽管在 web 服务中将 JSON 作为媒体类型并在客户端 Javascript 中将其作为数据类型,但我仍然只得到 xmlDocument 作为返回的对象。
这是网络服务签名。我正在使用 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);
}
});
除此之外,只需要submit()
表格。
我不明白我做错了什么。我被困在这里一段时间了......请帮我解开这个问题!