Je veux envoyer un message au serveur se compose de quelques sections différentes. L'objectif est d'envoyer des informations x-www-form-urlencoded avec une image. J'ai essayé faire de STH à similaire ceci: http://en.wikipedia.org/wiki/MIME#Multipart_messagesquel est le problème avec ma requête http en javascript?
Ceci est ma fonction js de le faire:
function sendPage() {
var source = document.getElementById("pageContainer")
var serializer = new XMLSerializer
if (!source.hasChildNodes()) {
alert("nie ma nic do wysłania")
return
}
var DOMNodeInString = "content=" + escape(serializer.serializeToString(source))
// sendToServer("savePage.php", true, handleAndShow, DOMNodeInString);return
xhttp.open("POST", "savePage.php", true)
var boundary = "xxx"
var body = "--" + boundary + "\r\n"
var file = document.getElementById("imgSource").files[0]
//wysyłam obrazek
if (file) {
var reader = new FileReader()
reader.readAsBinaryString(file)
body += "Content-Disposition: form-data; name='upload'; filename='" + file.name + "'\r\n"
body += "Content-Type: application/octet-stream\r\n\r\n"
body += reader.result + "\r\n"
body += "--" + boundary + "\r\n"
}
//wysyłam pozostałe pola formularza
body += "Content-Type: multipart/x-www-form-urlencoded \r\n\r\n"
body += DOMNodeInString
body += "\r\n--" + boundary + "--"
xhttp.setRequestHeader("Content-Type", "multipart/mixed; boundary=" + boundary)
xhttp.onreadystatechange = handleAndShow
alert(body)
xhttp.send(body)
}
cependant, la fonction ne fonctionne pas. Mon script php est incapable de recevoir $ _POST ["content"]. Que dois-je changer pour améliorer le script js?
Avez-vous essayé d'analyser le réseau activité avec Firebug (FF), Web Inspector (Chrome/Safari) ou Dragonfly (Opera)? Quels sont les en-têtes de réponse, par exemple? –
têtes respose: Connection: Keep-Alive Content-Encoding: gzip Content-Length: 20 Content-Type: text/plain Date: 14 novembre 2010 17:03:52 GMT Keep-Alive: délai d'attente = 15, max = 100 Serveur: Apache/2.2.16 (Debian) Variez: Accepter-Encoder X-Powered-By: PHP/5.3.3-2 le contenu est vide et ce n'est pas ce que j'attends parce que savePage.php est header ('Content-type: text/plain'); echo $ _POST ["content"]; ?> –