Не удалось разобрать заголовок авторизации

я вызываю API с параметром запроса, как сказано моей командой Remedy, и я получаю сообщение об ошибке «Невозможно проанализировать заголовок авторизации».

var yhttp = new XMLHttpRequest();
var phonedata=":People?q=%27Phone%20Number%20Business%27%20%3D%20%22%2B12017148030%22&fields=userid";
yhttp.open('GET', 'https://remproditsm.broadridge.net/api/arsys/v1/entry/CTM:People?q=%27Phone%20Number%20Business%27%20%3D%20%22%2B12017148030%22&fields=ciscofinesse');
yhttp.setRequestHeader('Authorization', 'Bearer' + response);
yhttp.setRequestHeader('Content-Type', 'application/json');
yhttp.send();

пробовал AR-JWT вместо Bearer, пробовал с заголовком application/json и без него, я не был уверен, должен ли я передавать это в заголовке, но команда исправления посоветовала мне пройти его. Кроме того, это отлично работает в Postman.


person Ravi Pandey    schedule 15.10.2020    source источник
comment
Я ничего не знаю о Remedy, но из вашего кода мы не знаем, что находится в переменной response   -  person Aioros    schedule 15.10.2020
comment
переменная ответа имеет мой токен   -  person Ravi Pandey    schedule 15.10.2020
comment
Он тоже начинается с пробела? Потому что вам нужен пробел между Bearer и токеном.   -  person Aioros    schedule 15.10.2020
comment
пробовал с пробелом, та же ошибка   -  person Ravi Pandey    schedule 15.10.2020


Ответы (3)


Предлагаю перепроверить почтальона и с правой стороны у вас есть кнопка КОД,

Почтальон

затем экспортируйте рабочую версию из postman в JavaScript-XHR.

Почтальон 2

person kordek21    schedule 16.10.2020
comment
спасибо за ваше руководство, в почтальоне я вижу этот дополнительный заголовок, не уверен, что это такое, и если мне нужно что-то сделать - person Ravi Pandey; 16.10.2020
comment
Кроме того, я использовал тот же код от почтальона, и я получаю эту ошибку [{messageType:ERROR,messageText:Ошибка строки квалификации,messageNumber:4558,messageAppendedText: в позиции 0.}] - person Ravi Pandey; 16.10.2020
comment
я думаю, что это как-то связано с подъемом, например, мой токен находится в переменной «res», а res — это глобальная переменная xhttp.onload = function() { res= xhttp.response; документ.записать (рез); } документ.запись(рез); так что, если вы видите, я также пытаюсь напечатать значение res снаружи, просто чтобы проверить значение, и оно показывает меня как неопределенное, а затем токен - person Ravi Pandey; 17.10.2020

хорошо, я нашел проблему, запрос AJAx по умолчанию является асинхронным, я использую переменную из ответа в качестве токена, и к тому времени, когда он достигает 2-го запроса GET API, в переменной res ничего нет, поэтому я преобразовал свой первый API запрос токена на синхронный

xhttp.open('POST', 'url', false);

          xhttp.setRequestHeader('authString', 'authentication string');

            xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

            xhttp.send(data);

            res= xhttp.responseText;

                document.write(res);
person Ravi Pandey    schedule 17.10.2020

Да, вам нужен AR-JWT {токен} в качестве значения заголовка авторизации. Токен следует сохранить после входа в систему и использовать для каждой последующей операции REST. https://docs.bmc.com/docs/ars2008/examples-of-using-the-rest-api-to-get-update-and-delete-an-entry-from-a-form-929631054.html

person DavidXYZ    schedule 05.11.2020