Я создаю отдельное html / javascript-приложение, которое должно взаимодействовать с REST API Drupal 8.6.2.Мое приложение использует Vue.js, поэтому запросы ajax отправляются Axios.
Я хочу иметь возможность управлять приложением как в одном домене, так и через CORS из другого домена.Допустим, мой Drupal находится на https://drupal8.example.org
Я могу войти и выйти из https://drupal8.example.org/app и из http://localhost/app без проблем со следующим кодом:
//Login
axios.post(
"https://drupal8.example.org/user/login?_format=json",
JSON.stringify({
'name': "myusername",
'pass': "mypassword"
}), {
headers: {
'Content-Type': 'application/hal+json'
},
withCredentials: true
}).
then(function (response) {
//my code goes here
});
// logout
axios.post(
"https://drupal8.example.org/user/logout?_format=json&token=" + logout_token, {}, {
headers: {
'Content-Type': 'application/hal+json'
},
withCredentials: true
}
).
then(function () {
//my code goes here
})
Но я полностью не могу проверить с помощью CORS, вошел ли пользователь в систему:
//check login status
axios.get(
"https://drupal8.example.org/user/login_status?_format=json", {}, {
headers: {
'crossDomain': true,
'Content-Type': 'application/hal+json'
},
withCredentials: true
}
).then(function (response) {
console.log(response.data); // 1 from the same domain, 0 from localhost; should be 1 in both cases
});
Если я проверю URL https://drupal8.example.org/user/login_status?_format=json в окне браузера, он отобразит 1 , но запрос, сделанный CORS, возвращает 0 .
В чем причина проблемы и как ее решить?