Come noto utilizzando ajax è possibile inviare dati al server, ma sono confuso sull'invio di un array per postare utilizzando XMLHttpRequest
non una libreria come jQuery. La mia domanda è, è possibile inviare un array a php
usando XMLHttpRequest
e come fa jQuery
inviare un array a php, voglio dire jQuery fa qualche lavoro addizionale per inviare un array al server (php $ _POST)?Come inviare array utilizzando XMLHttpRequest al server
risposta
Bene, non è possibile inviare altro che una stringa di byte. "L'invio di matrici" viene eseguito serializzando (facendo rappresentazione di stringa di oggetti) l'array e inviandolo. Il server analizzerà quindi la stringa e ricostruirà gli oggetti in memoria da essa.
Quindi invio [1,2,3]
verso PHP potrebbe accadere in questo modo:
var a = [1,2,3],
xmlhttp = new XMLHttpRequest;
xmlhttp.open("POST", "test.php");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.send('[1,2,3]'); //Note that it's a string.
//This manual step could have been replaced with JSON.stringify(a)
test.php:
$data = file_get_contents("php://input"); //$data is now the string '[1,2,3]';
$data = json_decode($data); //$data is now a php array array(1,2,3)
Btw, con jQuery si dovrebbe solo fare:
$.post("test.php", JSON.stringify(a));
Si desidera inviare un oggetto jSon (che può essere una matrice). Controlla se stai usando php Send JSON data to PHP using XMLHttpRequest w/o jQuery.
più su JSON: http://json.org/
jQuery JSON campione: JQuery and JSON
Questo dipende dal protocollo si sceglie di comprimere la struttura dei dati. I 2 più comunemente usati sono XML e JSON. Entrambi hanno i modi per dichiarare un array:
JSON: ['one thing', 'another thing']
XML: <things><thing name='one thing' /><thing name='another thing' /></things>
e non avrà alcun significativo lavoro supplementare da parte del server. In molti casi ridurrà effettivamente il lavoro poiché non è necessario utilizzare una convenzione di denominazione per distinguere tra di essi.
- 1. come inviare un'immagine al server Web
- 2. per inviare un file di testo al server utilizzando javascript
- 3. Messaggio array di byte al server API Web utilizzando HttpClient
- 4. Token FCM Firebase - Quando inviare al server?
- 5. MultipartEntityBuilder per inviare immagini al server ferroviario
- 6. GitLab: impossibile inviare il codice al server?
- 7. Come inviare video (da getUserMedia) al server Node.js?
- 8. come inviare file audio dal client al server Android servlet
- 9. Come inviare un messaggio al client tramite websocket utilizzando Spring
- 10. Come inviare richiesta di richiesta HTTP POST al server
- 11. Come inviare notifiche push dal server al cellulare Android
- 12. Come inviare XML al server attraverso il modulo HTML?
- 13. come inviare json object al server usando volley in android
- 14. Come inviare il modulo al server in Angular2
- 15. Come inviare un messaggio dal server al client
- 16. Come visualizzare l'immagine selezionata senza inviare dati al server?
- 17. Come inviare SMS al cellulare utilizzando il server SMTP nell'applicazione Windows?
- 18. Come connettersi al server XMPP utilizzando PHP
- 19. Come inviare notifiche all'app Android dal server Java utilizzando GCM?
- 20. Diversi modi per inviare valori json al server
- 21. Ottieni output da AVCaptureSession in Swift per inviare al server
- 22. In che modo il server può inviare dati al client?
- 23. Come inviare array di byte tramite RestTemplate
- 24. Invia dati JSON a PHP utilizzando XMLHttpRequest senza jQuery
- 25. È necessario inviare dati semplici al browser utilizzando node.js
- 26. risparmio TiddlyWiki 5 al server utilizzando store.php
- 27. Serializzare un array di valori da inviare utilizzando KSOAP2
- 28. Come accedere ai dati inviati al mio server utilizzando BaseHTTPRequestHandler?
- 29. Come inviare array js in Ajax
- 30. Socket inviare e ricevere array di byte
Grazie . puoi spiegare 'file_get_contents (" php: // input ");'? –
@Red è la rappresentazione non elaborata del corpo della richiesta. Vedi http://php.net/manual/en/wrappers.php.php. Ad esempio, si consideri il modulo normale submit, dove si ha '$ _POST [" key "] ===" value "'. I contenuti di "" php: // input "' sono in questo caso '" key = value "', che è quello che PHP ha usato per costruire l'array '$ _POST' per te. Devi usarlo qui perché quando pubblichi JSON, php non riempie '$ _POST' (dato che' $ _POST' funziona solo per i form, non per JSON). – Esailija
Quindi come ottengo i dati come '$ nome = $ _ POST ['nome']' quando uso '$ .post'? –