server side and client side, supporting jsonp