2014-09-02 59 views
0

我正在使用角度为我的应用程序和Web开发。我使用$ http进行数据发送和接收,但在执行真正的请求之前,我总是有这些OPTIONS请求。禁用或缓存AngularJS选项请求

我知道这些请求的目的,但这将是一个massiv负载没有和我有我的服务器上提供的所有交叉源头。

有没有什么办法只缓存OPTIONS请求或禁用这些请求?我不想使用x-www-form-urlencoded。

任何想法?

+0

此缓存应该通过这将状态的选项的有效期由指定服务器设置报头响应中的年龄(以秒为单位)。所以标题将包含:AccessControlMaxAge:3600 – Jon 2014-09-02 15:20:47

回答

0

您可以使用interceptor为禁用请求

angular.module('myApp') 
.factory('myInterceptor', 
function ($q) { 
    var interceptor = { 
     'request': function (config) { 

     if(config.method === 'OPTIONS') return; 
     } 
    }; 
    return interceptor; 
}); 

并将其注册到配置

angular.module('myApp') 
    .config(function ($httpProvider) { 
    $httpProvider.interceptors.push([ 
     '$injector', 
     function ($injector) { 
      return $injector.get('myInterceptor'); 
     } 
    ]); 
+0

TypeError:无法读取$ http.serverRequest(http://192.168.178.20/lib/ionic/js/ionic.bundle.js:16965:25)中未定义的 的属性“标题” ) – mrmow 2014-09-03 16:46:24

+0

你确定这个错误取决于我建议的代码吗? – 2014-09-03 19:48:56

+0

很确定。我只是将你的行添加到我的代码中。我不能发布整个代码,但我粘贴它的行。 http://pastebin.com/Asrd98A1 – mrmow 2014-09-04 20:45:45