This question already has an answer here:
I know that in agile requirement changes should not only be planned for but also embraced. But I still don't know agile how to handle these changes.
"Responding to change over following a plan", Is one of the four points of the Agile Manifesto.
In a typical methodology, such as Scrum, there are a number of tools that help do that. You don't deliver everything in one hit, instead deliver incrementally, incorporating feedback into the product backlog.
The Product backlog is a prioritised wish list of features that the product owner wants. Unlike a specification, this isn't fully detailed and can be changed at the product owners discretion. The highest priority items are elaborated enough such that development can be executed and may be selected for the next Sprint.
During a Sprint developers commit to deliver a selection of the high priority items and it is at this point that changes are typically locked down. A Sprint typically lasts 1-4 weeks (I most frequently see 2 week sprints). At the end of a Sprint, there should be a potentially shippable product.