Ich versuche, eine Ajax-Anfrage mit CURL zu reproduzieren, aber es ist immer fehlgeschlagen. Der Server sieht die gesendeten Daten (my_data in den folgenden Beispielen) überhaupt nicht.Reproduzieren Ajax-Anfrage mit CURL
curl \
--request POST \
--header 'Content-type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--url 'http://example.org/ajax_call' \
--data '{"my_data":"data_value"}'
ich auch versucht:
curl \
--request POST \
--header 'Content-type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--url 'http://example.org/ajax_call' \
--data "my_data":"data_value"
Und schließlich:
curl \
--request POST \
--header 'Content-type: application/json' \
--header 'X-Requested-With: XMLHttpRequest' \
--url 'http://example.org/ajax_call' \
-F "my_data=data_value"
Die Daten werden nie vom Server (Symfony in meinem Fall) gefangen. Ich denke, es gibt ein Problem mit XMLHttpRequest Formatierung in cURL und ich frage mich, ob was ich versuche zu tun ist sogar möglich (dh ordnungsgemäße Formatierung von XMLHttpRequest Objekt von cURL)
Ich kroch das Netz für Stunden und Port ' t bisher nichts mit Datenparametern gefunden.
Danke für Ihre Hilfe gefunden
EDIT
Lösung dank Menschen in Kommentarbereich war:
curl -v \
--header 'X-Requested-With: XMLHttpRequest' \
'http://example.org/ajax_call' \
-d my_data=data_value
Ist Route erhalten einrichten ' POST' und kreuzen Sie den Ursprung Ihrer Domain an? – 1252748
Was passiert, wenn Sie nur 'curl 'eingeben http://example.org/ajax_call' -d my_data = data_value' und lassen Sie' curl' versuchen, es mit dem Server auszuprobieren? Wenn es funktioniert, versuchen Sie es erneut mit 'curl -v 'http://example.org/ajax_call' -d my_data = data_value' und sehen Sie sich an, welche Werte für Content-Type, Accept und alle anderen relevanten Header festgelegt wurden. – hmedia1
Je weniger Optionen Sie 'curl' geben, desto mehr wird es versuchen, es für Sie auszuarbeiten. Wenn Sie zum Beispiel das Argument '-d data = value' hinzufügen, wird' curl' automatisch eine 'POST' Anfrage machen, ohne' -X POST' zu spezifizieren. Manchmal hilft es bei APIs zu sehen, was funktioniert, was nicht, welche Einstellungen wichtig sind und welche Einstellungen ignoriert werden. usw. – hmedia1