MVC was originally defined to ease the programming of desktop applications. The view subscribed to model events, updating the presentation when the model changed. The controller merely translated user interface events (e.g. a button press) into calls to the model. So the controller and view depended on the model, but were independent of each other. The model was independent of both. This allowed multiple views and controllers to work on the same model.
The "MVC" architecture used for web 1.0 applications (full page refresh, no AJAX) is somewhat different. A web request is dispatched to a controller. The controller somehow modifies the model state, then sends one or more models to be rendered by a view. The controller and view both depend on the model, but the controller also depends on the view.
With web 2.0 applications, we are returning to the classic MVC architecture, on the client side. The model, view, and controller all reside on the client side as Javascript objects. The controller translates user events to model actions. The model actions may or may not result in an AJAX request to the server. Again, the view subscribes to model events and updates the presentation accordingly.