It happened in the area of Lilne and Williams streets on Monday morning.
Police say the officer on bike patrol responded to a drug call and tried to stop a pickup truck, driven by a 22-year-old man from Pittsgrove, New Jersey.
The driver tried to take off, police say, hitting the officer and dragging him about 150 feet.
The truck driver was stopped at Ferry Street and White Horse Pike.
The officer was taken to the hospital with minor scrapes and cuts.