2016-11-16 74 views
1

我创建一个JSON API修改重写规则,这样它可以从movies.json访问。 如果我浏览到http://myurl.com/movies.json我可以看到JSON文件预计内容,但如果我用AJAX调用它会返回“404未找到”。JSON文件返回404

这里是我的重写URL代码:

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

就面临着同样的问题;加入header("HTTP/1.1 200 OK");似乎解决的事情。

+0

这个工作。谢谢 – FerP