sync xhr/fetch