service.post('services/my_submit', data, function... http://mysplunk:8000/en-US/splunkd/__raw/services/my_submit?output_mode=json 404 (Not Found)
Accessing from service port prints 'success' from the python script:
[expose:my_submit] pattern=my_submit methods=POST
[script:my_submit] match=/my_submit handler=my_submit.Submit
import splunk class Submit(splunk.rest.BaseRestHandler): def handle_submit(self): try: self.response.setHeader('content-type', 'text/html') self.response.write('success') except: self.response.setHeader('content-type', 'text/html') self.response.write('<p>Uh oh! Something wrong!</p>') handle_GET = handle_submit
Should I use 'services/my_submit' as the endpoint in the service call? What else could I miss? Your help is greatly appreciated.
seems that you are mixing Get and Post.
handle_GET = handle_POST = handle_submit
and try both js methods:
service.post(...) and service.get(...)
Thanks lweber. I can see missing handle_POST in python would be a problem. If I replace handle_GET with handle_POST only, I got a specific python error (object has no attribute 'handle_GET' ) on port 8089 web. Now I have both as you suggested, and added to web.xml, but still gets 404 error regardless I do service.get or service.post. I can do curl with -XPOST to get the correct response from port 8089.