It's just that you're pushing yourself hard. Improve your fitness, and leave two hours between a proper meal (shakes don't count) and your workout.
Zarkov is wrong about the lactic acid. The cause is simpler than that.
Your body has a certain amount of blood to keep everything going. When you're digesting food, your guts need more bloodflow*. When you're lifting or running, your muscles need more bloodflow.
You can do one or the other: digest or lift/run, but not both. So if you lift/run hard enough, your body says, "well, looks like he doesn't want to digest, better get rid of the food, then" - and you feel nauseous and eventually vomit. If you don't have anything to digest because it's a couple of hours after your meal, you won't feel as nauseous, but it may still happen.
The feeling faint and tunnel vision have the same cause. Your brain and eyes account for about 1/4 of all the bloodflow in your body, so if you draw a lot away slowly, as in digestion after an all-you-can-eat dinner, you feel sleepy; if you draw a lot away quickly, as in lifting/running, you feel faint and get tunnel vision.
You can improve bloodflow by general fitness and conditioning. Someone who can run 5km without stopping or who regularly does Tabata thrusters will simply take longer to feel sick doing squats or deadlifts or a run than someone who cannot or does not do those fitness things. But it'll happen to everyone eventually if they push themselves hard enough under the iron.
Thus, any time you do an exercise which uses a lot of muscles, there's a chance you'll feel nauseous, faint and/or get tunnel vision. So no-one is going to throw up from biceps curls, but many people have thrown up from deadlifts or squats.
On the one hand, as Arnie said, "so what if I throw up? I won't die." On the other hand, it's not pleasant or necessary to training, will probably make you unwelcome in the gym, and is a waste of all that good food you ate. And fainting with a big weight on your back is dangerous. So if you feel faint or nauseous, I would advise stopping, resting, then trying again later.
Lactic acid is something different, and it's an issue during endurance training, not strength training.
* If you want to be technical, it's not "bloodflow" but "blood pressure", combined with oxygen, glycogen and nutrients. But technical is boring.