Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ajax成功函数中从java获得单值响应_Java_Ajax_Rest - Fatal编程技术网

如何在ajax成功函数中从java获得单值响应

如何在ajax成功函数中从java获得单值响应,java,ajax,rest,Java,Ajax,Rest,我的ajax调用如下: var x = document.forms["myForm"]["param1"].value; var y = document.forms["myForm"]["param2"].value; $.ajax({ url: "./webapi/user/get?param1="+x+'&param2='+y, contentType: 'application/json', type: "GET",

我的
ajax
调用如下:

var x = document.forms["myForm"]["param1"].value;
var y = document.forms["myForm"]["param2"].value;
$.ajax({
        url: "./webapi/user/get?param1="+x+'&param2='+y,
        contentType: 'application/json',
        type: "GET",
        data:{get_param:'value'},
        success:function(data)
        {
            alert(data);
        }
        error:function(x,y,z){
            alert(x+" "+y+" "+z);
        }
    });
public int getFlag(String p_param1,String p_param2) {
    int flag=0;
    try{
        dcc.connectionCall();
        stmt=dcc.con.prepareCall("{? = call function1(?,?)}");
        stmt.registerOutParameter(1,OracleTypes.INTEGER);
        stmt.setString(2, p_param1);
        stmt.setString(3, p_param2);
        stmt.execute();
        flag = stmt.getInt(1);
        System.out.println("FLAG = "+flag+" "+p_param1+" "+p_param2);
    }
    catch(SQLException e){
        e.printStackTrace();
    }
    return flag;
}
我在
UserService
类中有我的
java
函数
是这样写的:

var x = document.forms["myForm"]["param1"].value;
var y = document.forms["myForm"]["param2"].value;
$.ajax({
        url: "./webapi/user/get?param1="+x+'&param2='+y,
        contentType: 'application/json',
        type: "GET",
        data:{get_param:'value'},
        success:function(data)
        {
            alert(data);
        }
        error:function(x,y,z){
            alert(x+" "+y+" "+z);
        }
    });
public int getFlag(String p_param1,String p_param2) {
    int flag=0;
    try{
        dcc.connectionCall();
        stmt=dcc.con.prepareCall("{? = call function1(?,?)}");
        stmt.registerOutParameter(1,OracleTypes.INTEGER);
        stmt.setString(2, p_param1);
        stmt.setString(3, p_param2);
        stmt.execute();
        flag = stmt.getInt(1);
        System.out.println("FLAG = "+flag+" "+p_param1+" "+p_param2);
    }
    catch(SQLException e){
        e.printStackTrace();
    }
    return flag;
}
我的
用户资源
具有以下功能:

userService userservice = new UserService();
@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public int getUser(@QueryParam("param1") String p_param1,@QueryParam("param2") String p_param2) throws SQLException{
    int flag = userservice.getUserFlag(p_param1,p_param2);
    System.out.println("FLAG= "+flag+" "+p_param1+" "+p_param2);
    return flag;
}
上面的内容在eclipse控制台上给出了正确的输出。但是,我无法在
ajax
call
中获得响应,这只是一个标志。我怎么得到它?我搜索了很多,但一切都像是将对象作为响应,然后将其字符串化。但是我不需要整个
json
。我只需要国旗。非常感谢您的帮助。我正在使用
Tomcat
作为服务器,上面的任务是使用
RESTful
web服务进行
connectionpool

使用
$.parseJSON(数据)
并获得您想要的。或者,您必须将返回类型更改为cleartext(在服务器端),这似乎不可行

@Altinak是正确的,参考文件:

对$.ajax()调用的不同类型的响应会受到 不同类型的预处理在传递到成功之前 处理程序。默认情况下,预处理的类型取决于 响应的内容类型,但可以使用 数据类型选项。如果提供了数据类型选项,则内容类型 响应的标题将被忽略

使用
$.parseJSON(数据)
并获得您想要的。或者,您必须将返回类型更改为cleartext(在服务器端),这似乎不可行

@Altinak是正确的,参考文件:

对$.ajax()调用的不同类型的响应会受到 不同类型的预处理在传递到成功之前 处理程序。默认情况下,预处理的类型取决于 响应的内容类型,但可以使用 数据类型选项。如果提供了数据类型选项,则内容类型 响应的标题将被忽略


请显示servlet的实际响应。要使它成为合法的JSON,它应该是数字,而不是别的。请显示servlet的实际响应。要使它成为合法的JSON,它应该是数字,而不是别的。jquery会自动解析通过网络接收的格式良好的JSONAJAX@px5x2,@Alnitak因为我希望返回一个整数值,那么
ajax
call中的数据类型应该是什么?@px5x2,@Alnitak,我能够在控制台上看到返回值,错误为
severy:MessageBodyWriter找不到media type=application/json,type=class java.lang.Integer,genericType=int.
,但ajax调用中的success和error函数没有显示任何内容。jquery自动解析通过网络接收的格式良好的jsonAJAX@px5x2,@Alnitak由于我希望返回一个整数值,那么在
ajax
call中的数据类型应该是什么?@px5x2,@Alnitak,我能够在控制台上看到返回值,错误为
severy:MessageBodyWriter找不到media type=application/json,type=class java.lang.integer,genericType=int.
但是ajax调用中的成功和错误函数没有显示任何内容。