The ‘data’ option in an ajax call can be either an array/object or a string, so you don’t have to process it. And the serialize() method is used for DOM elements, not arrays/objects. If you’d want to turn an array/object into a string you would use the jQuery.param() method.
I think that serialize() in your current code could return an empty string. Test it yourself in the Firebug console by running this code:
pageData = [timeStarted, a, b, c, timeLeft];
Without adding a colon ‘;’ after the last line it will make Firebug log the return value to the console.
You should do the same on the server side, just check the contents of $_POST by debugging, logging the value using Yii::log or error_log or simply echo’ing it using var_dump().