Wie sende ich HTTP POST / GET-Daten an drupal?
Zum Beispiel: Ich habe ein HTML-Formular:
<form action="mydrupalcite.com" method="get">
<input type="text" name="title" />
</form>
Wie bekomme ich die title
Daten in das Antwortmodul von drupal? (oder in ein beliebiges Modul?)
Ich suche nach der Drupal-Methode, um dies zu tun (ich bin relativ neu bei Drupal und wie es wirklich funktioniert)
Hat es etwas mit dem Servicemodul zu tun?
Antworten:
Die Formular-API von Drupal verfügt über einen integrierten CSRF- Schutz, sodass das Senden eines Formulars von einer externen Domäne nicht funktioniert. Sie können entweder die CSRF deaktivieren (sehr schlechte Idee) oder, wie Sie vorschlagen, das Servicemodul verwenden.
Es gibt keine Eins-zu-Eins-Zuordnung zwischen dem Servicemodul und den Formularen auf der Site. Stattdessen implementieren Module Ressourcen für bestimmte Aufgaben, die von einem externen Client verwendet werden sollen. Sie erhalten standardmäßig Knoten, Benutzer, Taxonomiebegriff und wahrscheinlich andere. Sie können also (zum Beispiel) einen neuen Knoten / Benutzer / Begriff hinzufügen. Dazu senden Sie jedoch nach der Authentifizierung xml / json / etc-Anforderungen an den Server und nicht ein Formular als solches.
Das Abrufen von Daten funktioniert ähnlich. Sie können entweder Services verwenden, um dies zu tun, oder wenn Sie Ihre eigene Authentifizierung verwalten können / nicht benötigen, finden Sie in der Antwort von indrock eine gute Methode.
Services sind sehr erweiterbar. Selbst wenn das Antwortmodul keine Ressourcen implementiert, ist es ziemlich einfach, eigene hinzuzufügen, die API-Funktionen aus dem Antwortmodul (oder einem anderen Modul) umschließen.
Die Dokumentation für Dienstleistungen wäre wahrscheinlich ein guter Anfang.
quelle
Sie müssen zuerst eine Seite (URL) in Drupal erstellen, um diese Parameter abzurufen. Sie können dies tun, indem Sie
hook_menu()
in Ihrem benutzerdefinierten Modul implementieren . Lesen Sie dies, um Ihr benutzerdefiniertes Modul zu erstellen .Dadurch wird eine Seite auf Ihrer Website unter der URL http://mydrupalsite.com/get_details erstellt
Jetzt machen Sie aus Ihrem HTML den Aufruf wie
HINWEIS: Gemäß der Antwort von @ clive würde ich vorschlagen, dass Sie es nur für Entwicklungs- / Bildungszwecke verwenden. Dies kann Auswirkungen auf die Sicherheit haben.
quelle