Wie senden Sie eine raw-strings durch ein jQuery-POST Anfrage?
Ich versuche zu POSTEN, ein raw-string via jQuery.ajax()
z.B.,
contact_list=352345
Habe ich
$.ajax({
beforeSend: function(xhr){
xhr.setRequestHeader('Content-Type', header);
}
},
url: link,
type: type,
processData:false,
data: data,
success: function(data){
console.log(data);
}
});
Die meisten der Zeit, die ich am senden von JSON-Daten, so header='application/json'
Auf der server-Seite, die ich echo $HTTP_RAW_POST_DATA
und siehe mein JSON-string nur in Ordnung.
Allerdings will ich manchmal senden normalen form Daten zu. Aber wenn ich den header='application/x-www-form-urlencoded'
$HTTP_RAW_POST_DATA
leer ist.
ProcessData
ist falsch, so sollte es nicht nur an meinem string durch?
Als vorübergehende Lösung, ich bin nur aus dem header, so wie application/json
ignorieren und die Content-Type
auf dem server für diesen speziellen Endpunkt.
- Was wirklich verblüffend ist meiner Meinung nach, dass in der network inspector sieht es so aus das Anfrage-payload ging richtig durch. z.B., contact_list=352345 ist es... Vielleicht ist dies eine PHP-Sache und form Daten, die nicht zeigen, bis in $HTTP_RAW_POST_DATA?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde eher senden Sie eine Flagge, um meine javascript-Funktion, um zu sehen, welche Art von input
damit Ihre Funktion wie folgt Aussehen wird
Aber das ist, wenn Sie verwenden möchten Ihre Funktion, wie es ist.
Keine zusätzliche Arbeit erforderlich. Versuchen Sie dies:
docs:
PHP
$HTTP_RAW_POST_DATA
ist nicht verfügbar, mit enctype="multipart/form-data". http://www.php.net/manual/en/ini.core.php#ini.always-populate-raw-post-dataSo, jetzt auf den server ich Folgendes tun:
Scheint zu funktionieren.