2014-02-07 15 views
5
gezeigt

Dies ist mein Angular js Stück Code:Knoten js/Angular js - ACHTUNG: Vorläufige Header werden

$http({ 
       method:'POST', 
       withCredential:true, 
       url:$scope.config.app_ws+'auth/signup', 
       data:{user:$scope.auth} 
      }).success(function(status, response){ 

       console.log(response); 
      }).error(function(status, response){ 
       alert(response+'Bummer :(, an error occured plese retry later. '); 
      }); 

Das ist mein Node.js Stück Backend:

var allow_cross_domain= function(req, res, next) { 
     res.header('X-Powered-By', 'hey.heyssssssss.org'); 

     var oneof = false; 
     if(req.headers.origin) { 
     res.header('Access-Control-Allow-Origin', req.headers.origin); 
     oneof = true; 
     } 
     if(req.headers['access-control-request-method']) { 
     res.header('Access-Control-Allow-Methods', req.headers['access-control-request-method']); 
     oneof = true; 
     } 
     if(req.headers['access-control-request-headers']) { 
     res.header('Access-Control-Allow-Headers', req.headers['access-control-request-headers']); 
     oneof = true; 
     } 
     if(oneof) { 
     res.header('Access-Control-Max-Age', 60 * 60 * 24 * 365); 
     } 
    // intercept OPTIONS method 
    if (oneof && req.method == 'OPTIONS') { 
     res.send(200); 
    } else { 
     next(); 
    } 
    } 

    app.use(allow_cross_domain); 

    app.post('/auth/signup', function (req, res) { res.send('wtff'); }); 

Ich rufe nur POST localhost: 3000/auth/signup von Angular zu Node, aber ich bekomme **CAUTION : Provisional headers are shown.** in Chrome-Konsole.

Chrome (ACHTUNG):

enter image description here

Firefox (keine Antwort für etwa 30/60 Sekunden und dann die alert() kommt: /):

enter image description here

was könnte das sein?

Wenn ich GET benutze alles ist in Ordnung, ist nur mit POST, dass ich Probleme bekomme, wie ist das möglich?

Antwort

10

personaly verwende ich diese "reset" Methode in Winkeln:

app.config(['$httpProvider', function ($httpProvider) { 
    //Reset headers to avoid OPTIONS request (aka preflight) 
    $httpProvider.defaults.headers.common = {}; 
    $httpProvider.defaults.headers.post = {}; 
    $httpProvider.defaults.headers.put = {}; 
    $httpProvider.defaults.headers.patch = {}; 
}]); 
+0

Gott, es ist ein halber Tag, ich bin auf diesem Bug, danke, es funktioniert !! – sbaaaang

+1

kein Problem. Habe viel Zeit darauf verwendet, selbst nach der Antwort zu suchen. –

+1

Es wäre cool, wenn wir wissen könnten, warum das passiert. –

2

dieser 28. März festgelegt wurde 2014 so wird es in der nächsten Version von crome (v35) ok

chromium community

+0

Ehrfürchtig, aber es ist immer noch nützlich für die Codierung von mobilen Apps. –

+1

Ich benutze Chrome 43, immer noch mit diesem Problem konfrontiert. –