Ошибка 401 при использовании Redmine API для запроса POST, хотя я включил ключ API - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь отправить запрос на создание новой вики-страницы, используя redmine-api. Я использую JavaScript и Axios. Однако я получаю ошибку 401 (UnAuthorize).

Моя цель - иметь возможность отправить текстовый документ на мой Redmine и создать вики-страницу.

Я использую предоставленный ключ Api, и я включил функцию остальные API в моем настройке Redmine

Я включил ключ api в заголовок, но он не работает.

  var wordDocument = "./Redmine.docx"

   axios.post('<website url>/uploads.json', {
    headers: {
        'Content-Type': 'application/octet-stream',
        'Cache-Control': 'no-store',
        'key': '<api-key>'
    },
    data:wordDocument

    })
    .then(function (response) { 
       console.log("succeeed--->  "); 
       console.log    (response) 
     })
    .catch(function (error) {
        console.log("failed----->  ");
        console.log(error.response.headers)
        console.log(error.message)
        console.log("failed----->  ");
    })


Я получаю статус: «401 не авторизован»,

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

Хорошо, я получил это работает. Я сделал «axios ({})» вместо «axios.post». Я не знаю, в чем разница? Я думал, что это было то же самое. Вот мой код для тех, кто сталкивается с этим. \

var wordDocument = "./Redmine.docx"
axios({
    method: 'post',
    url: '<redmind_url>/uploads.json',
    headers: { 'Content-Type': 'application/octet-stream'},
    params: { 'key': '<api key>'},
    data: wordDocument
})
    .then(function (response) {
        console.log("succeeed--->  ");
        console.log(response.data)
    })
.catch(function (error) {
    console.log("failed----->  ");
    console.log(error.response.statusText, "-->", error.response.status);
    console.log(error.response.headers)
    console.log(error.message)
    console.log("failed----->  ");
})
0 голосов
/ 21 июня 2019

Попробуйте использовать другие методы аутентификации, упомянутые в документации:

x passed in as a "key" parameter
- passed in as a username with a random password via HTTP Basic authentication
- passed in as a "X-Redmine-API-Key" HTTP header (added in Redmine 1.1.0)

https://www.redmine.org/projects/redmine/wiki/Rest_api#Authentication

Также убедитесь, что вы используете правильный ключ API.

Ключ API можно найти на странице учетной записи (/ my / account) при входе в систему на правой панели макета по умолчанию.

...