我正在创建一个修改重写规则的JSON API,以便可以从movies.json访问它。 如果我导航到http://myurl.com/movies.json我可以看到带有预期内容的json文件,但如果我使用AJAX进行调用,它将返回" 404 Not Found"。
这是重写网址的代码:
public function rewrite_url() {
global $wp_rewrite;
add_rewrite_tag( '%movies%', '([^&]+)' );
add_rewrite_rule( 'movies.json', 'index.php?movies=all', 'top' );
}
以下是我输出json文件的代码:
public function json_output() {
global $wp_query;
$movies_tag = $wp_query->get( 'movies' );
if ( ! $movies_tag ) {
return;
}
$movies_array = array();
$args = array(
'post_type' => 'movies',
'posts_per_page' => 100,
);
$movies_query = new WP_Query($args);
if ( $movies_query->have_posts() ) : while ( $movies_query->have_posts() ) : $movies_query->the_post();
$post_id = get_the_ID();
$movies_array['data'][] = array(
'id' => $post_id,
'title' => get_the_title(),
'poster_url'=> get_post_meta($post_id, 'poster_url', true),
'rating' => get_post_meta($post_id, 'rating', true),
'year' => get_post_meta($post_id, 'year', true),
'short_description' => get_post_meta($post_id, 'short_description', true)
);
endwhile;
wp_reset_postdata();
endif;
header("Access-Control-Allow-Origin: *");
header( 'Content-Type: application/json;' );
wp_send_json( $movies_array );
}
知道为什么会这样吗?感谢
答案 0 :(得分:0)
刚刚遇到同样的问题;添加header("HTTP/1.1 200 OK");
似乎可以解决问题。