使用应用程序密码从AJAX获取401

时间:2022-01-24 作者:Codescribler

已在本地wordpress安装上运行以下代码。我已经为管理员用户创建了一个应用程序密码,但仍在获取未经授权的401。我错过了什么?

这是密码

jQuery.ajax({
                    type: "POST",
                    dataType: "json",
                    url: \'http://the-lead-magnet-company.local/wp-json/wp/v2/posts\',
                    data: JSON.stringify({  
                    title: me.title(),
                    content: \'Here is some content\',
                    status: \'published\'
                    }),
                    beforeSend: function ( xhr ) {
                        xhr.setRequestHeader(\'Authorization\', \'Basic admin:DqfX r0YT hQE5 lsgu 2Y7d PJv5\');
                    },
                    success: function (data) {
                        alert("posted");
                    },
                    error: function (error) {
                        alert("FAILD:" + error);
                    }
                });

1 个回复
SO网友:Tom J Nowell

您应该使用基于cookie的身份验证,而不是基本身份验证。删除基本身份验证/应用程序密码身份验证代码。

遵循《REST API手册》中通过REST API创建post的cookie身份验证示例:

https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/#cookie-authentication

<在PHP中创建用于AJAX请求的有效noncewp_create_nonce( \'wp_rest\' ) 正如文档告诉您的那样,添加beforeSend 对于您的AJAX调用,如文档所建议的,在HTTP头中添加nonce:
    beforeSend: function ( xhr ) {
        xhr.setRequestHeader( \'X-WP-Nonce\', your_nonce_variable );
    },
<从同一域登录站点时发出请求

相关推荐

如何在WordPress 4.7+中使用REST-API进行元查询?

我试图通过元查询进行过滤,但无论我尝试什么,我都无法使其工作。基本上,我希望通过rest API进行此查询:wp-json/wp/v2/books?meta_query[relation]=OR&meta_query[0][key]=arkivera&meta_query[0][value]=1&meta_query[0][compare]== 我尝试了几个不同的自定义字段,但它总是返回所有post对象。在我的函数文件中,我添加了:function api_allow_m