Ошибка вызова WordPress REST API V2 с Vue.js

Когда я вызываю WP REST API с Vue.js и axios, я получаю следующую ошибку.

XMLHttpRequest не может загрузить http://my-wordpress-site.com/wp-json/wp/v2/posts. Заголовок 'Access-Control-Allow-Origin' имеет значение 'http://null', которое не равно предоставленному источник. Следовательно, к источнику 'null' доступ не разрешен.

Когда я использую Postman с методом GET, он работает правильно.

В чем проблема?

var app = new Vue({
  el: '#app',
  data: {
    posts: [],
  },
  mounted: function() {
    this.getPosts()
  },
  methods: {
    getPosts: function() {
      var app = this

      axios.get('http://my-wordpress-site.com/wp-json/wp/v2/posts')
      .then(function (response) {
        app.posts = response.data.title.rendered
      })
      .catch(function (error) {
        console.log(error)
      })
    }
  }
});
<div id="app">
  <div class="section">
    <ul>
      <li v-for="post in posts">{{ post }}</li>
    </ul>
    <h3></h3>
  </div>
</div>


person gassio    schedule 31.01.2017    source источник
comment
Это проблема, связанная с CORS. en.wikipedia.org/wiki/Cross-origin_resource_sharing   -  person Potray    schedule 31.01.2017
comment
@potray Я уверен. Но я не могу придумать решения.   -  person gassio    schedule 31.01.2017


Ответы (1)


Я решил это, изменив строку в файле wp-includes / rest-api.php,
в функции rest_send_cors_headers ():

header( 'Access-Control-Allow-Origin: *');

person gassio    schedule 04.02.2017
comment
Редактирование ядра WordPress не кажется жизнеспособным решением. - person Jordan; 13.09.2017
comment
Я восхищаюсь вашим комментарием, но это небольшое исправление, не решающее проблему. Если WordPress обновится, все исчезнет. Вот почему я проголосовал против ???? - person King Rayhan; 21.06.2018