I am currently implementing a RESTful web service which talks XML using CodeIgniter and REST by Phil Sturgeon. I am now stuck at how to read XML from HTTP PUT. This is what I did.
At the client side:
$(function(){ // Bind a click event to the 'ajax' object id $("#new_user").click(function(evt){ // JavaScript needs totake over. So stop the browser from redirecting the page evt.preventDefault(); var str = '<?xml version="1.0" encoding="UTF-8"?><xml><name>'+$("#txtname").val()+'</name><email>'+$("#txtemail").val()+'</email></xml>'; // Ajax request to get the data $.ajax({ // URL from the link that was clicked on url: $(this).attr("href"), type: "put", contentType: "application/xml", processData: false, data: str, success: function(data, textStatus, jqXHR){ //alert('Successful AJAX request!'); //var items = parseXml(data); //printXml(items); }, // Failed to load request. This could be caused by any number of problems like server issues, bad links, etc. error: function(jqXHR, textStatus, errorThrown){ alert('Oh no! A problem with the Ajax request!'); } }); }); }); At the server side:
public function users_put(){ $input = file_get_contents('php://input'); print_r($input); } It prints out nothing. The above JavaScript code and function works well in HTTP POST.