Aclaraciones:
Para comprobar si la petición fue exitosa, se evalúan ajax.readyState==4 &&
ajax.status == 200, 404 es un error, pero no el único, en cambio el éxito siempre se da si se cumplen ambas condiciones
Recomiendo usar POST para añadir / eliminar del carrito, recuerden que GET cachea la respuesta, y si el usuario quiere volver a agregar otro producto al carro, al estar chacheada la última petición no se enviará, generando defases en el carrito, además es válido porque a fin de cuentas es una operación de modificación sobre el carrito.