【问题标题】:Get with AngularJS Cross-Origin Request block使用 AngularJS 跨域请求块获取
【发布时间】:2014-11-29 14:59:58
【问题描述】:

我被这个问题困扰了一周; 我连接到我的服务器 API 并检索 cookie。

然后我执行 GET 以检索返回良好的 JSON Cookie 会话,但我遇到了 Cross Origin 问题。

API 这边没问题,因为我得到了很好的状态 200。

回应:

================================================ ===============

响应: 访问控制允许信用... true Access-Control-Allow-Head... Accept,Origin,Content-Type,X-Requested-With 访问控制允许方法...获取、发布、放置、删除 访问控制允许原始... * Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 连接保活 内容类型应用程序/json 日期 2014 年 8 月 6 日星期三 18:50:20 GMT 到期时间 1981 年 11 月 19 日星期四 08:52:00 GMT 保活超时=15,最大值=100 杂注无缓存 服务器阿帕奇 传输编码分块 X-Powered-By PHP/5.3.3

请求: 接受 application/json, text/plain, / 接受编码 gzip,放气 接受语言 fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 Cookie 令牌=97e437a8db5bf96d01e980a3dd81c30cb4bcbf19; PHPSESSID=kjpqve8tbebhh8u2p6nlu2jki5 托管 myapi.com 源本地主机 引用本地主机 用户代理 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0

这是我的要求:

function loadFeed() {
        $scope.show
      /*  console.log($scope.userid);*/


        $http.get('http://myapi.com/', {withCredentials: true})
            .success(function (data) {

                        $scope.hide();
                        $scope.items = data.data;
                       /* console.log($scope.data); */

                    })
            .error(function(result) {
                        alert("feed ne marche pas");

                    });

    }

我在 myapp 配置中试试这个:

.config(['$httpProvider', function($httpProvider) {
     $httpProvider.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8';
    $httpProvider.defaults.useXDomain = true;
    delete $httpProvider.defaults.headers.common['X-Requested-With'];

 }])   

.config(['$sceDelegateProvider', function($sceDelegateProvider) {
     $sceDelegateProvider.resourceUrlWhitelist(['self', 'http://myapi.com/**', 'http://www.myapi.com/**']);

 }])

我不明白问题出在哪里?

【问题讨论】:

  • 你用的是什么版本的角度?
  • 我用的是2.0.1版本
  • 您能重新检查一下吗?当前的 Angular 版本是 1.2.21,测试版是 1.3.x
  • 对不起,现在是 1.2.12

标签: javascript json angularjs cordova cookies


【解决方案1】:

最后,我在我的 api 上更改了我的标题: 之前: header('Access-Control-Allow-Origin: *'); 现在: header('Access-Control-Allow-Origin: 192.168.1.87:8100');

它可以工作,但我认为当我编译我的移动应用程序时它不会工作......

【讨论】:

    猜你喜欢
    • 2016-03-15
    • 2014-04-28
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多