#javascript #parse-platform
#javascript #синтаксический анализ-платформа
Вопрос:
Следующий код ничего не сохраняет в базе данных:
var UserObject = Parse.Object.extend("User");
var objectid = object.id;
var secondQuery = new Parse.Query(UserObject);
secondQuery.get(objectid, {
success: function(userObject) {
alert(userObject.get("fbId"));
userObject.set("provider_access_token", access_token);
userObject.set("provider_refresh_token", refresh_token);
userObject.set("provider_token_expire", expires_in);
userObject.save(null, {
error: function(error){
alert(error.message error.code);
}
});
},
error: function(object, error) {
alert("Error:" error.code " " error.message);
}
});
Я не уверен, почему, но это дает мне ошибку HTTP 400. Что я делаю не так?
Я проверил, что все мои переменные установлены и исправлены (оповещение работает просто отлично).
Комментарии:
1. Уверены, что вы можете передать только идентификатор в query.get(objectid ? Я бы ожидал, что HTTP API будет принимать URI-строку типа: «/apiendpoint/».intval(objectid).. Кроме того, проверьте, не пропустили ли вы функцию() { перед этим следующим {.
2. РЕДАКТИРОВАТЬ: ошибка 400 HTTP означает: сервер был подключен, но запрос был неверно сформирован. Этот модуль, по-видимому, выполняет AJAX-запрос. (К сожалению, 404 — это «ресурс не найден»)
3. @ManuelArwedSchmidt да, в документации по разбору так сказано. Но это не проблема, потому что он фактически извлекает правильный пользовательский объект.. Предупреждение работает просто отлично.
4. @Quasimodo’sclone это метод, предоставляемый Parse, поэтому я не уверен, в чем может быть проблема..
5. @Ande Я не знаю этого модуля. Ошибка HTTP подразумевает, что где-то в фоновом режиме был выполнен запрос. Может быть, отсутствует код для указания URL-адреса?
Ответ №1:
У вас опечатка: ошибка> исправление ошибки это даст вам реальную ошибку о том, почему не сохраняется
Ответ №2:
Спасибо Хуану Гуарчиа, который указал, что у меня был тип, который привел к тому, что ошибка не отображалась. После исправления этой проблемы моя проблема была легко решена.
Ошибка, которую я получал, заключалась в следующем:
Parse::UserCannotBeAlteredWithoutSessionError206
Это означает, что пользовательские объекты не могут быть изменены без использования главного ключа моего приложения. Однако это не поддерживается внутри Parse Javascript SDK, только в облачном коде.
Поэтому мне нужно переместить функцию в облачный код, а затем сохранить оттуда. Проблема решена!