个性化阅读
专注于IT技术分析

我的ajax请求失败,但是上传了我的帖子

点击下载

为什么我的ajax请求失败, 但仍上传我的帖子。我该如何防止失败。

我的ajax请求代码在:

createRate(){
    var ourNewPost = {
        'title': $(".new-rate-title").val(), 'content': $('.new-rate-body').val(), 'rate': $('.custom-star:checked').val(), 'productId': $('.submit-rate').data('id')
    }

    $.ajax({
        // adding nonce key to make wordpress know we are looged in and has the permision to do that method.
        beforeSend: (xhr) => {
            xhr.setRequestHeader('X-WP-Nonce', ylsData.nonce);
        }, url: ylsData.root_url + '/wp-json/yls/v1/rating/', type: 'POST', data: ourNewPost, success: (response) => {

            console.log('congrats');
            console.log(response);
        }, error: (response) => {
            console.log('failed');
            console.log(response);

        }
    }); 
}

我的php自定义rest api代码:

add_action('rest_api_init', 'ylsRateRoute');


function ylsRateRoute(){
    register_rest_route('yls/v1', 'rating', array(
        'methods' => 'POST', 'callback'=> 'createLike'
    ));
}
function createLike($data){
    if(is_user_logged_in()){
        $title = sanitize_text_field($data['title']);
        $content = sanitize_text_field($data['content']);
        $rateNum = sanitize_text_field($data['rate']);
        $productId = sanitize_text_field($data['productId']);
        if(get_post_type($productId) == 'product'){
            return wp_insert_post(array(
                'post_type' => 'rate', 'post_status' => 'publish', 'post_title' => $title, 'post_content' => $content, 'meta_input' => array(
                    'rate_related_product' => $productId, 'rating_rate' => $rateNum
                )
              ));
        }else{
            die("Invalid product id");
        }
      }else{
        die("you must be logged in first");
      }
}

上载失败的图片:

控制台中的失败消息

我的ajax请求失败,但是上传了我的帖子1

如果我添加dataType:’text’, 它会成功, 但是端点返回有关我要阻止的帖子的所有这些详细信息。我只想保留方法wp_insert_post()返回的ID。它出现在ajax响应的responseText的末尾。

寻求所有帮助。


#1


在尝试解决这个问题很多小时之后, 我发现问题出在帖子类型名称上, 这是”评分”, 可能是它从woocommerce或我在wordpress网站上使用的其他东西保存的帖子类型。但是我将其从”费率”更改为其他一切正常的工作。

赞(0)
未经允许不得转载:srcmini » 我的ajax请求失败,但是上传了我的帖子

评论 抢沙发

评论前必须登录!