2017-03-19 5 views
0

Ich bin sehr neu in AngularJS und ich habe die Aufgabe, es zu verwenden, um eine Headless Drupal-Schnittstelle zu erstellen.Headless Drupal Erstellen von Inhalten über RESTful-Dienste

Ich habe ein Problem treffen, wo ich die folgenden Fehler feststellen:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>400 Bad Request</title> 
</head><body> 
<h1>Bad Request</h1> 
<p>Your browser sent a request that this server could not understand.<br /> 
The number of request header fields exceeds this server's limit.</p> 
<hr> 
<address>Apache/2.4.7 (Ubuntu) Server at 127.0.0.1 Port 80</address> 
</body></html> 

Hier ist der Code Ich verwende:

//test function 
$scope.test = function() { 
    console.log("NODE Test function responding!"); 
    var user_session = $cookieStore.get('user_session'); 
    console.log(user_session); 

    var nodeObj = { 
    "title": "Node Test", 
    "body": "Node body contents test#2", 
    "type": "page" 
    }; 
    var nodeObj = { 
    "type": "page", 
    "title": "New Page", 
    "language": "und" 
    }; 

    var res = $http.post("http://mydrupal-services-site/angularjs-headless/api/v1/node", nodeObj, { 
    "headers": user_session 
    }); 
    res.success(function(data, status, headers, config) { 
    $scope.message = data; 
    console.log("Success: "); 
    console.log(data); 
    }); 
    res.error(function(data, status, headers, config) { 
    console.error(data); 
    }); 
} 

Nach der Suche, fand ich einen Beitrag, die LimitRequestFieldSize 16384 vorgeschlagen Hinzufügen zu meinem VirtualHost würde das Problem lösen, aber es tat es nicht.

UPDATE

Meine USER_SESSION Variable enthält die folgenden (die nur 144 Zeichen lang ist):

Cookie:SESSb22b2ff3837c37411e0b1da3fbd77b0c=_bwpgljhXPwcA_ZfmZpL2IrnIvo25PX_APYdzrIcM08 X-CSRF-Token:GwXcAwctxVcOi_FvI-Mfm6HYQaLoWAFnvkQQ-Nnzbhs 
+0

Bitte überprüfen Sie meine Antwort, nur eine Frage an Sie: Warum ist Ihre user_session Cookie länger als 6028 Zeichen ?! – lin

+0

Hallo @lin, meine user_session Daten sind nur 144 Zeichen lang. Ich habe es als ein Update auf die Frage – sisko

+0

aufgenommen Könnten Sie die vollständige Anfrage Header per HTTP-Anfrage hinzufügen? (rohe Ausgabe des Netzwerk-Tabs in der Konsole) – lin

Antwort

0

The number of request header fields exceeds this server's limit.

Ihr erlaubt max 8 KB in einem Header standardmäßig senden (apache2). Auf diese Weise ist {"headers": user_session} viel zu lang, um einen Header zu senden. Versuchen Sie, es an Ihr Knotenobjekt anzuhängen, oder schneiden Sie die Benutzersitzungszeichenfolge auf maximal 8 KB (6.028 Zeichen). Übrigens. Sie definieren Ihre nodeObj zweimal hintereinander. Das Problem hängt nicht mit Drupal zusammen.

+0

Danke für Ihr Feedback. Ich habe die Länge meines Cookies getestet und es ist nicht länger als 144 Zeichen. Ich habe auch versucht, Ihren Code-Vorschlag, aber es hat nicht funktioniert für mich – sisko

+0

@sisko Könnten Sie die vollständige Anfrage Header von Ihrem HTTP-Request senden? (Rohausgabe der Netzwerkregisterkarte in der Konsole) – lin

Verwandte Themen