Метод сохранения синтаксического анализа выдает ошибку 400

#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, только в облачном коде.

Поэтому мне нужно переместить функцию в облачный код, а затем сохранить оттуда. Проблема решена!