我正在使用rest插件http://wp-api.org/创建一个小应用程序。
我试图用jquery删除一个定制的post条目,但是缺少了一些东西,下面是我的代码:
...
//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“。我认为在进行删除调用时,数据没有被解析,我应该如何进行身份验证?有线索吗?
谢谢
发布于 2014-09-26 07:35:44
您可以获得401,因为AJAX没有被授权删除帖子。如果每个人都能向您的WordPress发送这样的AJAX请求并删除您的所有内容,那将是一个大问题。
对于API接口,您的JS代码必须修改如下所示:
...
//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头中,而不是数据中的变量。
我没测试过。
https://wordpress.stackexchange.com/questions/162604
复制相似问题