Error 500 is an error on server side.
It usually states that the code that is executed by your call to /api/report/action/post has failed.
It could fail for a lot of thing, of course. Maybe you are passing the wrong parameters, or in the wrong encoding. Or maybe just it has a bug.
The steps I'd take to debug this would be:
1) Check what happens when I execute the call directly. Is there an error? Do this error throws more light about the problem?
2) If there is no error calling the method directly I'd check if my call is correct. Am I passing the correct url? And the correct parameters? Is the data being passed the expected data? It's encoding as the server expects it?
3) If the direct call works and my remote call seems to be correct I'd try to use a tool like fiddler to check all the steps and data in the call/response data transmission, and try to detect where things get tricky.
Hope it helps.