The method call is asynchronous. You need to specify a callback function in the call:
PageMethods.GetName(callback);
In the callback function you get the result:
function callback(result, context, method) {
alert(result);
}
You can also specify another callback function for a failed AJAX call. The method parameter in the callback is the name of the server function called, so you can use the same callback for several page methods. (I never used AJAX page methods before, so I learned something new this day too. :))
Despite everything, the person most likely to be fooling you next is yourself.