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);
});
Я полагаю, чтобы отправить какой-то заголовок или что-то?
- Я использую плагин членства, который защищает некоторые из моих платных постов. Итак, из мобильного приложения я перевожу пользователей на "вход в систему", а затем захожу в браузер мобильного приложения. Это поддерживает государство. Как только это будет сделано, я получу полные защищенные сообщения. Это означает, что моя функция getJSON отправляет правильные заголовки аутентификации для мобильного пользователя, вошедшего в систему, для получения полных данных из WordPress. Вызов функции -
$$.getJSON(url + "posts/?per_page=10&categories=23,24" + "&_envelope&_embed", function (json) {...})
Если так, то почему я не могу сделать комментарий в той же сессии? $$.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
});
};