Почему мой запрос 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 пользовательский код 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");
}
}
загруженное изображение ошибки:
сообщение об ошибке в консоли
Если я добавлю dataType: 'text', он будет успешным, но все же конечная точка вернет все это подробности о посте, который я хочу предотвратить. я хочу остаться только с идентификатором, который возвращает метод wp_insert_post (). и он приходит в конце responseText в ответе ajax.
оцените всю помощь.