use the shared run-loop aware ajax util