小编tre*_*ter的帖子

使用angular.js向HTTP请求添加自定义标头

我是angular.js的新手,我正在尝试为请求添加一些标头:

   var config = {headers: {
            'Authorization': 'Basic d2VudHdvcnRobWFuOkNoYW5nZV9tZQ==',
            'Accept': 'application/json;odata=verbose'
        }
    };

   $http.get('https://www.example.com/ApplicationData.svc/Malls(1)/Retailers', config).success(successCallback).error(errorCallback);
Run Code Online (Sandbox Code Playgroud)

我查看了所有文档,在我看来这应该是正确的.

当我在网址中使用本地文件时$http.get,我会在Chrome的网络标签上看到以下HTTP请求:

GET /app/data/offers.json HTTP/1.1
Host: www.example.com
Connection: keep-alive
Cache-Control: max-age=0
If-None-Match: "0f0abc9026855b5938797878a03e6889"
Authorization: Basic Y2hhZHN0b25lbWFuOkNoYW5nZV9tZQ==
Accept: application/json;odata=verbose
X-Requested-With: XMLHttpRequest
If-Modified-Since: Sun, 24 Mar 2013 15:58:55 GMT
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22
X-Testing: Testing
Referer: http://www.example.com/app/index.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Run Code Online (Sandbox Code Playgroud)

如您所见,两个标头都已正确添加.但是当我将URL更改为$http.get上面显示的URL时(除了使用真实地址,而不是example.com),我得到:

OPTIONS /ApplicationData.svc/Malls(1) HTTP/1.1
Host: www.datahost.net
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://mpon.site44.com
User-Agent: …
Run Code Online (Sandbox Code Playgroud)

javascript http-headers angularjs

89
推荐指数
5
解决办法
22万
查看次数

Angular Js和Trigger.io - 无法关注适用于iOS的Android上的链接

我正在使用AngularJS和Trigger.io为iOS和Android开发移动应用程序.

当我尝试打开如下所示的链接时:

<a ng-href="#/offers/{{featured_offer.Id}}"></a>
Run Code Online (Sandbox Code Playgroud)

它在iOS上运行得很好,但在Android上我在触发器控制台中收到此消息,并且链接未导航到:

[WARNING] Attempted to open a URL which could not be handled: unsafe:content://io.trigger.forge722b6464a0e211e2ba9d12313d00dc45/src/index.html#/offers/8
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Android中使用它与iOS中的相同?

android angularjs trigger.io

7
推荐指数
1
解决办法
881
查看次数

Trigger.io + Angular.js并在调用forge.ajax后更新视图

遇到问题,到目前为止无法为看似相似的SO问题找到解决方案.问题是这样的:

使用Trigger.io的forge.ajax,我的Angular.js视图在返回数据后不会更新.我意识到这是因为forge.ajax是一个异步函数,并且在已经显示视图后返回数据.我试图通过使用$ rootScope.apply()更新视图,但它对我不起作用,如我所看到的许多示例中所示.

请参阅下面的Controller代码:

function OfferListCtrl($scope) {

   $scope.offers = [];

   $scope.fetchOffers = function(callback) {

       $scope.offers  = [];

       var successCallback = function(odataResults) {
           var rawJsonData = JSON.parse(odataResults);
           var offers = rawJsonData.d;
           callback(offers);
        };

       var errorCallback = function (error){
            alert("Failure:" + error.message);
       };

       forge.request.ajax({
           type: 'GET',
           url: 'https://www.example.com/ApplicationData.svc/Offers',
           accepts: 'application/json;odata=verbose',
           username: 'username',
           password: 'password',
           success: successCallback,
           error: errorCallback
       });

    };

    $scope.fetchOffers(function(offers) {
        $scope.offers = offers;
        forge.logging.info($scope.offers);
    });
}
Run Code Online (Sandbox Code Playgroud)

其中的所有代码都运行正常,$ scope.offers将填充来自数据库的Offer数据.日志功能显示数据正确,格式正确.

我已尝试在逻辑位置(以及一些不合逻辑的位置)使用$ rootScope.apply(),但无法使视图更新.如果你有任何想法我可以让它工作,我将不胜感激.

编辑:添加HTML

HTML在下面.注意按钮的ng-click ="refresh()".这只是一种解决方法,所以我至少可以看到数据.它调用一行刷新函数,执行$ rootScope.apply(),它会更新视图.

   <div ng-controller="OfferListCtrl">
        <h1>Offers</h1>
      <ul>
        <li ng-repeat="offer …
Run Code Online (Sandbox Code Playgroud)

asynchronous angularjs trigger.io

2
推荐指数
1
解决办法
1622
查看次数