" XMLHttpRequest无法加载"错误?

时间:2015-05-12 16:50:51

标签: javascript angularjs wordpress http

这是完整的错误

  

XMLHttpRequest无法加载http://urbanetradio.com/wp-json/posts。 ' Access-Control-Allow-Origin'标头的值为' http://localhost:8100'这不等于提供的原产地。起源' http://run.plnkr.co'因此不允许访问。

现在,我在很多关于 Access-Control-Allow-Origin 的帖子中都看到了,但没有人说如何将其添加到您的应用中,我使用Firebase作为后端。

Here is a jsbinPlunker如果您想查看错误,请在jsbin中打开应用程序中的控制台,打开浏览器控制台。

这就是我正在做的事情

.config(function($stateProvider, $urlRouterProvider) {

  $stateProvider
    .state('tabs', {
      url: "/tabs",
      abstract: true,
      templateUrl: "tabs.html"
    })
    .state('tabs.news', {
      url: "/news",
      views: {
        'tab-news': {
          templateUrl: "tab-news.html",
          controller: 'NewsCtrl'
        }
      }
    })
   $urlRouterProvider.otherwise("/tabs/news");
})

.controller('NewsCtrl', function($scope,
                                 FreshlyPressed) {
  $scope.posts = [];
  $scope.doRefresh = function() {
    $scope.posts = FreshlyPressed.getBlogs($scope);
    $scope.$broadcast('scroll.refreshComplete');
  }
  $scope.doRefresh();
})

.service('FreshlyPressed', function($http) {
  return {
    getBlogs: function($scope) {
      $http.get('http://urbanetradio.com/wp-json/posts')
        .success(function(result) {
          $scope.posts = result;
        });
    }
  }
})

我正在向wordpress帐户收取请求以获取帖子。这是一个移动应用程序,当我在网络浏览器中测试应用程序时一切正常,但当我尝试在我的手机中打开该应用程序时,出现错误,我无法看到帖子

here is the app just in case you want to test it

所以你觉得我能在这做什么?我在哪里放Access-Control-Allow-Origin: *

1 个答案:

答案 0 :(得分:2)

$http.get('http://urbanetradio.com/wp-json/posts')替换为$http.jsonp('http://urbanetradio.com/wp-json/posts')并尝试主持人是否支持 JSONP ,而不是"安全性较低"简单的JSON请求。大多数API服务器都支持它,它克服了Access-Control-Allow-Origin标头错误。