Поскольку конечная точка Google OAuth 2.0 для отзыва токенов не поддерживает CORS, а запрос должен быть сделан POST
, они предлагают использовать форму и отправить ее в конечную точку, а не использовать метод Ajax
для публикации запроса.
OAuth 2.0 для клиентских веб-приложений / отозвать состояние документации :
Если вызов выполнен успешно, код состояния ответа будет 200. В случае ошибки код состояния HTTP будет 400.
Но тогда, используя только js на веб-клиенте, как я могу определить, был ли запрос успешным или неудачным?
Я пытаюсь загрузить результат во всплывающие окна. Но поскольку он использует другое происхождение, возникает проблема CORS. и JS не может получить доступ к содержимому, а также не может прослушивать события load
или error
.
Или вообще, как сделать запрос POST к неподдерживаемому источнику CORS и узнать, был ли он успешным или неудачным
function revokeAccess(accessToken) {
// Google's OAuth 2.0 endpoint for revoking access tokens.
var revokeTokenEndpoint = 'https://oauth2.googleapis.com/revoke';
// Create <form> element to use to POST data to the OAuth 2.0 endpoint.
var form = document.createElement('form');
form.method = method;
form.action = src;
form.target = 'oauthWindow';
for (let k in obj) {
var tokenField = document.createElement('input');
tokenField.type = 'hidden';
tokenField.name = k;
tokenField.value = obj[k];
form.appendChild(tokenField);
}
document.body.appendChild(form);
form.submit();
}