首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP从jquery删除请求

WP从jquery删除请求
EN

WordPress Development用户
提问于 2014-09-26 07:21:14
回答 1查看 1.8K关注 0票数 0

我正在使用rest插件http://wp-api.org/创建一个小应用程序。

我试图用jquery删除一个定制的post条目,但是缺少了一些东西,下面是我的代码:

代码语言:javascript
复制
...
//make the request
        var dataArray = {};
        var urlRequest = WP_API_Settings.root+"/posts/"+postID;
        var typeRequest = 'DELETE';

        //first set the standard stuff
        dataArray["action"] = "wp_api";
        dataArray["_wp_json_nonce"] =  WP_API_Settings.nonce;

        //make the post
        $.ajax(urlRequest,{
            url : urlRequest,
            type : typeRequest,
            data : dataArray,
            cache : false
        }).done(
....

我收到的错误是401没有使用"json_user_cannot_delete_post“。我认为在进行删除调用时,数据没有被解析,我应该如何进行身份验证?有线索吗?

谢谢

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2014-09-26 07:35:44

您可以获得401,因为AJAX没有被授权删除帖子。如果每个人都能向您的WordPress发送这样的AJAX请求并删除您的所有内容,那将是一个大问题。

对于API接口,您的JS代码必须修改如下所示:

代码语言:javascript
复制
...
//make the request
    var dataArray = {};
    var urlRequest = WP_API_Settings.root+"/posts/"+postID;
    var typeRequest = 'DELETE';

    //first set the standard stuff
    dataArray["action"] = "wp_api";
    //dataArray["_wp_json_nonce"] =  WP_API_Settings.nonce;

    //make the post
    $.ajax(urlRequest,{
        url : urlRequest,
        type : typeRequest,
        data : dataArray,
        cache : false,
        beforeSend: function (xhr) {
            xhr.setRequestHeader('X-WP-Nonce', WP_API_Settings.nonce);

            if (beforeSend) {
                return beforeSend.apply(this, arguments);
            }
        }
    }).done(
....

因此,现在您的NONCE被设置在X Nonce头中,而不是数据中的变量。

我没测试过。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/162604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档