API входа в Alfresco дает неверный запрос 400

Я пытаюсь войти в систему на открытом воздухе через api. Я не знаю, почему он возвращает ошибку 400 Bad Request. Json должен быть правильным, и в моем вызове ajax я также установил тип содержимого на «application / json».

Это мой вызов ajax.

var jsonData = JSON.stringify({ username : usernameV, password : passwordV });

var request = $.ajax({
    settings : {contentType:'application/json'},
    type: "POST",
    url: "http://---ip---/alfresco/service/api/login",
    data: jsonData
});

Строка json в консоли.

{"username":"admin","password":"admin1"} 

Ошибка

400 Bad Request 
Request sent by the client was syntactically incorrect

Сообщение в ответе JSON-объект

Unable to parse JSON POST body: A JSONObject text must begin with '{' at character 0"

person wayzz    schedule 16.10.2014    source источник


Ответы (2)


Я подозреваю, что это связано с тем, как вы устанавливаете contentType, поскольку единственные способы, которыми это может произойти, - это либо пустой JSON, либо неправильный contentType. Пытаться:

var request = $.ajax({
    contentType:"application/json",
    type: "POST",
    url: "http://---ip---/alfresco/service/api/login",
    data: jsonData
});
person Mardoz    schedule 16.10.2014

Я создал одну java-программу, которая делала то же самое. Я думаю, вы должны передать имя пользователя и пароль в URL-адресе. Даже если вы прямо нажмете ниже URL-адрес в браузере, он даст вам alf_ticket, который полностью используется при аутентификации на открытом воздухе.

private static String getAlfticket() throws IOException, JSONException {
        String ticket = "";
        URL url = new URL("http://hostname/alfresco/service/api/login u="+USERNAME+"&pw="+PASSWORD+"&format=json");
        URLConnection con = url.openConnection();
        InputStream in = con.getInputStream();
        String encoding = con.getContentEncoding();
        encoding = encoding == null ? "UTF-8" : encoding;
        String json = IOUtils.toString(in, encoding);
        JSONObject getData = new JSONObject(json);
        System.out.println(getData.getJSONObject("data").get("ticket")
                .toString());
        ticket =getData.getJSONObject("data").get("ticket").toString();
        return ticket;
} 


Крутик Джейсвал
Разработчик Alfresco

person Krutik Jayswal    schedule 16.10.2014