【问题标题】:"XMLHttpRequest cannot load" ERROR?“XMLHttpRequest 无法加载”错误?
【发布时间】:2015-10-02 23:13:15
【问题描述】:

这是完整的错误

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

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

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: * 放在哪里?

【问题讨论】:

标签: javascript angularjs wordpress http


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-05-28
    • 2016-08-08
    • 1970-01-01
    • 2014-10-17
    • 2016-02-04
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    相关资源
    最近更新 更多