0

我有使用 Framework7 编写的功能齐全的 Cordova 应用程序。完美运行。获取帖子,使用类别、标签等连接。允许共享。它在 Playstore 上:检查这里..

我的问题是,有两件事:1.我应该能够直接从应用程序发表评论,但我无法使用 JSON POST。它说“用户应该登录......”。实际上,我的网站设置为无需登录即可接受任何人的评论。只需输入电子邮件和姓名。那为什么科尔多瓦应用程序没有发生这种情况?请参阅下面的代码。您可能认为它有一些脚本错误,但不,它完美地调用了 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 插件,也不想使用。

4

1 回答 1

0

嗨 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 评论,如果您喜欢如何使用 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
    });
};
于 2017-10-15T16:05:04.767 回答