В настоящее время я внедряю веб-сервис RESTful, который передает XML с использованием CodeIgniter и REST Phil Sturgeon .Теперь я застрял в том, как читать XML из HTTP PUT.Это то, что я сделал.
На стороне клиента:
$(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!');
}
});
});
});
На стороне сервера:
public function users_put(){
$input = file_get_contents('php://input');
print_r($input);
}
Он ничего не печатает.Приведенный выше код и функция JavaScript хорошо работают в HTTP POST.