进行Ajax REST API调用时出错

时间:2016-01-20 08:16:26

标签: javascript jquery rest

我正在尝试创建此应用程序。 应用程序应该登录(使用REST API),并使用会话ID进行响应。 我创建了一个按钮,它调用执行ajax调用的JavaScript函数,然后尝试登录。

结果附加到div(appscan_results)

这是代码

<html>
<head>
<title> AppScan Issues Exporter </title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
function login(){
    var request = $.ajax({
        type:"POST",
        url:"myurl",
        dataType: "json",
        contentType: "application/json",
        data:{
            "userId": "username",
            "password": "password",
            "featureKey": "AppScanEnterpriseUser",
            "clientVersion": "",
            "clientIp": "",
            "clientHostName": ""
            },
        });

    request.done(function (jqXHR){
        alert('Success');
        $("#appscan_results").html(jqXHR.responseText);
    });

    request.fail(function(jqXHR) {
        alert('Failure');
        $("#appscan_results").html(jqXHR.responseText);
    });
}
</script>
<button onclick="login()">Get Issues</button>
<div id="appscan_login"></div>
<div id="appscan_results"></div>
</body>
</html>

运行后,我收到以下错误:

Exception thrown by application class 'org.apache.wink.server.internal.RequestProcessor.handleRequest:195' 

javax.servlet.ServletException: org.codehaus.jackson.JsonParseException: Unexpected character ('u' (code 117)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') at [Source: com.ibm.ws.webcontainer.srt.SRTInputStream@d80cceaa; line: 1, column: 2]

at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:195)
at com.ibm.websphere.jaxrs.server.IBMRestServlet.service(IBMRestServlet.java:106)
at [internal classes]
at com.ibm.appscan.server.filters.ClickjackFilter.doFilter(Unknown Source)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
at [internal classes]

我在代码中缺少什么?

PS:我已经使用REST API客户端测试了REST调用,但我得到了响应,

1 个答案:

答案 0 :(得分:0)

org.codehaus.jackson.JsonParseException

您的servlet / rest控制器无法解析Input JSON字符串并将其转换为Valid Java Object。

将数据更改为

 data:JSON.stringify({
            userId: "username",
            password: "password",
            featureKey: "AppScanEnterpriseUser",
            clientVersion: "",
            clientIp: "",
            clientHostName: ""
            },
        })