Cordova, Framework7 с WP JSON API для аутентификации пользователей и комментариев

У меня полнофункциональное приложение Cordova, написанное с использованием Framework7. Работает отлично. Выбирает сообщения, подключается с использованием категорий, тегов и т. Д. Позволяет делиться. Это в игровом магазине: проверьте здесь..

Моя проблема заключается в двух вещах: 1. Я должен иметь возможность оставлять комментарии непосредственно из приложения, что я не могу использовать JSON POST. Там написано "пользователь должен войти в систему..". На самом деле мой сайт настроен на прием комментариев от кого-либо без входа в систему. Нужно просто ввести адрес электронной почты и имя. Тогда почему это не происходит в приложении Cordova? Смотрите мой код ниже. Вы можете подумать, что у него есть некоторые ошибки скриптинга, но нет, он отлично вызывает json и показывает мне сообщение об ошибке..

url = "http://punashcha.com/wp-json/wp/v2/";
$$.post(url + 'comments', {
                                NONCE_KEY: '&.~OJCQN_s7*pEW(EG)-26](Eh`Fj}YP.]ZPYC2SPruX` g!/]8c>6>I|`_B[$6i',
                                content: $$(page.container).find('#comment-content').text(),
                                post: $$(page.container).find('#link').attr('postid')
                            },
        function (data) {
            me.alert("आपला अभिप्राय मिळाला. धन्यवाद!");
        },
        function (err, sts) {
            me.alert("आपला अभिप्राय रजिस्टर झाला नाही. " + sts + err.responseText);
        });

Я полагаю, чтобы отправить какой-то заголовок или что-то?

  1. Я использую плагин членства, который защищает некоторые из моих платных постов. Итак, из мобильного приложения я перевожу пользователей на "вход в систему", а затем захожу в браузер мобильного приложения. Это поддерживает государство. Как только это будет сделано, я получу полные защищенные сообщения. Это означает, что моя функция getJSON отправляет правильные заголовки аутентификации для мобильного пользователя, вошедшего в систему, для получения полных данных из WordPress. Вызов функции -

$$.getJSON(url + "posts/?per_page=10&categories=23,24" + "&_envelope&_embed", function (json) {...})
Если мои категории 23, 24 защищены, то я не вижу полных статей, если я не вошел в систему. Но если я вошел в систему, я могу увидеть полные статьи. Означает, что getJSON отправляет соответствующие заголовки для пользователя.

Если так, то почему я не могу сделать комментарий в той же сессии? $$.post & $$.getJSON используют разные заголовки?

** Я не использую плагин JSON и предпочитаю этого не делать.

1 ответ

Здравствуйте, vinay, попробуйте использовать функцию AjaxPost ниже, а не $$. Post()

function AjaxPost(url, data, success, error, async) {
    $$.ajax({
        url: url,
        data: data,
        type: "POST",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        async: async,
        dataType: "json",
        contentType: "application/json",
        processData: false,
        cache: false,

        success: success,            
        error: error
    });
};

Ответить Комментарий Vinay, Вы можете добавить "Авторизация", если вам нравится Как использовать Basic Auth с jQuery и AJAX?, так что функция выше станет (включая пример переменных данных);

var data ={'name':'vinay','framework':'framework7'};


function AjaxPost(url, data, success, error, async) {
    $$.ajax({
        url: url,
        data: data,
        type: "POST",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Authorization' : 'authorizationdata you like'
        },
        async: async,
        dataType: "json",
        contentType: "application/json",
        processData: false,
        cache: false,

        success: success,            
        error: error
    });
};
Другие вопросы по тегам