Я пытаюсь создать небольшое приложение на Nativescript-vue
, где у меня есть серверная laravel
структура для вызовов API, которые необходимо вызывать для получения соответствующих данных. Например, если пользователь хочет войти в систему, ему необходимо подтвердить свои учетные данные через api oauth/token
, поэтому я пытаюсь вызвать это через axios
, вот мой код:
Мой settings.js
файл содержит.
export const authHeader = {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
это импортируется в мои вызовы axios:
const postData = {
grant_type: 'password',
username: user.email,
password: user.password,
client_id: clientId,
client_secret: clientSecret,
scope: '',
provider: provider
}
const authUser = {}
axios.post(authUrl, postData, {headers: authHeader}).then(response => {
console.log('Inside oauth/token url')
if(response.status === 200)
{
console.log('response received')
}
})
.catch((err) => {
if(err.response.status === 401){
reject('Validation error')
}
else
reject('Something went wrong')
})
когда я пытаюсь построить с помощью команды tns debug android --bundle
, я получаю chrome-devtools
, который показывает мне:
Углубившись в это, я вижу, что заголовки передаются, но они только предварительные:
Как видите, в моем приложении console.log
показано:
Даже при компиляции я получаю следующие ошибки:
Направь меня, как мне этого добиться. Спасибо.
Изменить:
Точно так же я использовал nativescript's
собственную http
документацию примерно так:
const httpModule = require("http");
httpModule.request({
url: "http://iguru.local/oauth/token",
method: "POST",
headers: { "Content-Type": "application/json" },
content: JSON.stringify({
grant_type: 'password',
username: this.user.email,
password: this.user.password,
client_id: 'check',
client_secret: 'check',
scope: '',
provider: 'check'
})
}).then((response) => {
// Argument (response) is HttpResponse
console.log('Action called')
if(response.status === 200)
{
console.log('Response recieved')
}
}, (e) => {
console.log('Something went wrong')
});
Я получаю тот же результат, более того, я пробовал api со стороны сервера ex http://confidenceeducare.com/oauth/token бывает так же. Обычное Vue
приложение прекрасно вызывает API. Я предполагаю, что с приложением nativescript
возникла какая-то проблема. Мне нужно импортировать что-то еще? Я застрял в этом.
Если кто-то думает, что моя конечная точка api сломана, я попытался использовать URL-адреса, упомянутые в примере, то есть https://httpbin.org/post
:
а также:
Когда я проверил свой api в postman
, он там работает, я получаю как минимум ответ с кодом состояния:
Изменить 2: для справки репозиторий github https://github.com/nitish1986/sample_mobile_app а>
{ withCredentials: true }
опцию, чтобы он работал с аутентификацией? И, вероятно, вам не нужен ваш объектauthHeader
- person Andria   schedule 23.03.2019