2014-10-16 3 views
0

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

Это мой вызов 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 string in the console.

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

Ошибка

400 Bad Request 
Request sent by the client was syntactically incorrect 

сообщение в объекте responseJSON

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

ответ

2

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

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

Я создал один Java программа, которая делает то же thing.I думает, что вы должны передать имя пользователя и пароль в url.Even, если вы непосредственно ударили ниже URL в браузере, это даст вам alf_ticket, который используйте полную аутентификацию для alfresco.

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; 
} 


Крутик Jayswal
Alfresco Разработчик

Смежные вопросы