TL;DR: No. "Secure" is not a binary property, and this is better than nothing, but it's very vulnerable to MitM.
What you're describing is effectively unauthenticated opportunistic encryption. It's not a terrible idea - it is better than plain text, in that it will defeat a passive eavesdropper - but it's not great. It would be trivial for a network attacker to defeat, either by substituting the public key for their own, or by modifying the HTML/javascript (assuming a browser-based client) that retrieves the key and performs the encryption. Even if the attacker misses the start of the communication and thus can't interfere with the key exchange, they can forcibly reset the communication between client and server, probably causing the page to get reloaded and giving themselves a new chance.
Incidentally, if you really think this is worth it, at least try to do it right. RSA is an OK but not great choice for exchanging a symmetric key but you definitely shouldn't try to encrypt the actual requests with it, and you couldn't even encrypt the responses with it unless the client also generated and send a public key. Instead you should use a hybrid cryptosystem, where a symmetric key (or secret that can be used to derive a key) is exchanged, and then further communication is secured by symmetric encryption (with either HMACs or AEAD for integrity too). And, if you're going to do hybrid crypto, it makes more sense to use Diffie-Hellman (or better yet, elliptic curve DH) for the key exchange, as the parameters are much lower-cost to generate than a strong RSA key so you can get forward secrecy and good cryptographic strength at a reasonable cost. ECDH is supported in the Web Crypto API, so you don't have to write any cryptographic primitives yourself.