The method has to be decorated with [WebInvoke] to enable POST method.
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
Update:
If it is asmx, include the below protocols in web.config
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
in system.web
Also, decorate the web method with [scriptmethod] to be accessed from script