Трудно сказать в чем вы допускаете косяк. Вообще пробелы и запятые будут кодированы как раз так, как запросе:
alert(encodeURIComponent('230,96 375,108'))
а на сервере будут декодированы и проблем не будет.
Здесь нет явного кодирования, но тем не менее на сервер все уйдет как положено, выполните и в ответ получите переданное.
<?
if($_POST) {
exit(print_r($_POST, 1));
}
?>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<script type="text/javascript">
var xhr = new XMLHttpRequest();
xhr.open('POST', location);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send('ps=0&id=46&name=gfh&points=230,96 375,108&commPointX=308&commPointY=103');
xhr.onload = function() {
alert(xhr.responseText)
}
</script>
</body>
</html>