The bit about it being an "advisory vote" is not really the problem, IMO. The problem was when Cameron said (and also wrote it in the bit of paper through everyone's door) that they would stand by the result. Therefore, he, in everything but name, changed it from an advisory vote to a binding one.
He then also evoked Article 50 far too quickly (by quite a few years in my opinion).
If he had kept it as a true advisory vote, it would still have come as a shock to him, but he could have formulated a plan (over many years), and then put that to another referendum. He completely cocked it up in so many ways, just for the sake of in-fighting in the Conservative party.
I voted leave in the current Referendum, and also voted to leave in the first Referendum (1975), but I am not at all opposed to a trading deal with Europe, but am totally against closer political ties, and the way the EU is aiming to abolish the "Veto". That is the reason I voted to come out in '75, as I thought it would be the thin end of the wedge in regards to Political Union, and was very suspicious that Political change would creep in through the back door.
However, being as the phrases "Brewery", "piss-up" and "couldn't Organise" are apt for the current incumbents of the Palace of Westminster, I feel the only way out of this complete mess is to do it all over again, and this time, if Leave still "Won", then do it properly this time, as many people have suggested on here, with a second referendum once a deal has been finalised. There should never have been a "binding" vote on such abstract and absolute terms as "leave" and "remain".
People are also correct when they say that there are a thousand versions of what "leave" means, and the leave voters are not just one mass with exactly the same thoughts on the matter, as I daresay they are many Remainers who are not at all happy with some aspects of the current EU.