Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Wordpress Rest Api使用自定义端点上的POST更新内容_Javascript_Wordpress_Wordpress Rest Api - Fatal编程技术网

Javascript Wordpress Rest Api使用自定义端点上的POST更新内容

Javascript Wordpress Rest Api使用自定义端点上的POST更新内容,javascript,wordpress,wordpress-rest-api,Javascript,Wordpress,Wordpress Rest Api,我正在为Post类型Post创建自定义端点。 来自Javascript的请求工作正常,但无法理解如何更新,例如,帖子的内容 我创建并注册了一个路由,为路由创建了一个回调函数,还创建了一个小表单,在其中插入了post ID和内容 这是路线的代码 add_action('rest_api_init', function() { register_rest_route('wl/v1', 'postsAdd/(?P<id>\d+)', [ 'methods' =>

我正在为Post类型Post创建自定义端点。 来自Javascript的请求工作正常,但无法理解如何更新,例如,帖子的内容

我创建并注册了一个路由,为路由创建了一个回调函数,还创建了一个小表单,在其中插入了post ID和内容

这是路线的代码

add_action('rest_api_init', function() {
    register_rest_route('wl/v1', 'postsAdd/(?P<id>\d+)', [
        'methods' => 'POST',
        'callback' =>'wl_post_write',
    ]);
})
来自javascript的XMLHttpRequest是

    var ourPostData = {
        "content": content
    }

    var updatePost = new XMLHttpRequest(); 

    updatePost.open("Post", mySiteData.siteURL + '/wp-json/wl/v1/postsAdd/'+id+'/?post_type=post');

    updatePost.setRequestHeader("X-WP-Nonce", mySiteData.nonce);

    updatePost.setRequestHeader("Content-Type","application/json;charset=UTF-8");

    updatePost.send( JSON.stringify(ourPostData) );

    console.log(updatePost.responseText);
变量“content”和“id”是我在表单字段中写入的值

responseText的console.log为:

    {"id":"51","post_type":"post","content":"my new post content"}
上面的代码返回了我随请求一起发送的正确参数,但这不会更新id为51的帖子中的内容

我不明白怎么更新它


非常感谢您在请求时需要通过授权。引用此线程以通过POST方法传递自定义rest端点的正确授权:


谢谢

嗨,谢谢你的回答。我使用这个updatePost.setRequestHeader('Authorization','Basic'+param);其中param是username:password的编码base64。此授权使用wordpress DEAFULT API Rest with POST。不管怎样,由于授权太多,帖子没有更新。您是否能够使用您正在执行的授权更新您的代码段?另外,我想知道GET方法是否适用于您?默认的wordpress endpoints with POST方法与该授权一起工作-我能够创建和更新帖子。从自定义端点来看,授权似乎有效,但帖子的更新无效。GET方法也适用于默认端点和自定义端点。
    {"id":"51","post_type":"post","content":"my new post content"}