_POST assumes it's application/x-www-form-urlencoded or multipart/form-data form values. HTTP_RAW_POST_DATA, if populated, is the raw string. You can also access this with the psuedo-url php://input. You can submit arbitrary POST data (e.g. XML, JSON, HTML) using AJAX.