Не могли бы вы показать вывод после этой строки TokenModel
TokenModel.RegisteredToken = currToken;
Например:
console.log(TokenModel);
.
Тем не менее, я думаю, то, что происходит в параметре данных, неверно. И ваш объект данных должен быть сформирован таким образом, потому что данные должны быть действительными объектами:
Token: JSON.stringify(TokenModel)
data: {
Token: JSON.stringify(TokenModel),
},
ОБНОВЛЕНИЕ:
Это Похоже, messaging.getToken()
вызывает асинхронную функцию, поэтому для получения правильного значения вы можете использовать thenables
, чтобы дождаться выполнения обещания или async/await
.
Пример использования вашего скрипта thenables
:
function submitForm() {
messaging.getToken().then(value => {
const TokenModel = {
RegisteredToken = value
}
$.ajax({
type: "POST", //HTTP POST Method
url: "Notification/Register", // Controller/View
dataType: 'json',
data: JSON.stringify({
Token: TokenModel
}),
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});
}, error => {
console.log('messaging.getToken() fails - debug it!');
throw new Error(error);
}
}
Пример использования await/async
:
submitForm = async () => {
try {
const token = await messaging.getToken();
const TokenModel = {
RegisteredToken = token
};
$.ajax({
type: "POST", //HTTP POST Method
url: "Notification/Register", // Controller/View
dataType: 'json',
data: JSON.stringify({
Token: TokenModel
}),
success: function (status) {
console.log('Send');
},
error: function () {
console.log('something went wrong - debug it!');
}
});
} catch(error) {
console.log('Invalid token');
throw new Error(error);
}}