Hey,
I'm trying to submit an HTML form in JIRA dialog.
import com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate import groovy.transform.BaseScript import javax.ws.rs.core.MediaType import javax.ws.rs.core.MultivaluedMap import javax.ws.rs.core.Response @BaseScript CustomEndpointDelegate delegate showDialog(){ MultivaluedMap queryParams -> // get a reference to the current page... def issuekey = queryParams.getFirst("issuekey") def dialog = """<section role="dialog" id="sr-dialog" class="aui-layer aui-dialog2 aui-dialog2-medium" aria-hidden="true" data-aui-remove-on-hide="true"> <header class="aui-dialog2-header"> <h2 class="aui-dialog2-header-main">Send comment</h2> <a class="aui-dialog2-header-close"> <span class="aui-icon aui-icon-small aui-iconfont-close-dialog">Close</span> </a> </header> <div class="aui-dialog2-content"> <p> <form action="http://localhost:8080/rest/scriptrunner/latest/custom/sendcomment" method="post" id="usrform" class="aui" enctype='application/json'> <fieldset> <textarea class="textarea" name="comment" id="textarea-id" placeholder="Your comment here..."></textarea> </fieldset> <input id='issuekey' type="hidden" name="issuekey" value='"""+issuekey+"""'> <div class="buttons"> <input class="button submit" type="submit" value="Submit" id="comment-save-button"> </div> </form> </p> </div> <footer class="aui-dialog2-footer"> <div class="aui-dialog2-footer-actions"> <button id="dialog-close-button" class="aui-button aui-button-link">Close</button> </div> <div class="aui-dialog2-footer-hint"></div> </footer> </section> """ Response.ok().type(MediaType.TEXT_HTML).entity(dialog.toString()).build() }
The problem is that I get "XSRF check failed" error.
I even tried to just print a log from the custom rest but I it does not print to the logs.
I get this is the log error:
2018-04-04 11:58:54,477 http-nio-8080-exec-4 WARN admin 718x3452x1 jr3nl4 0:0:0:0:0:0:0:1 /rest/scriptrunner/latest/custom/sendcomment [c.a.p.r.c.security.jersey.XsrfResourceFilter] XSRF checks failed for request: http://localhost:8080/rest/scriptrunner/latest/custom/sendcomment , origin: http://localhost:8080 , referrer: http://localhost:8080/projects/STAR/issues/STAR-1
I saw that the solution it submit the form with JQuery but It's not recommended to add <script> tag to inline groovy code
add this to the post header- "X-Atlassian-Token", "nocheck"
Is anybody know a way to add it to the HTML code?
Thanks
Hi!
Have you implemented it? https://stackoverflow.com/questions/9516865/how-to-set-a-header-field-on-post-a-form
But you can do it as ajax function
like this
$.ajax({ url: 'foo/bar', headers: { 'X-Atlassian-Token': 'nocheck' }
});
Cheers,
Gonchik Tsymzhitov
Join our 3-part live learning series with community leader Robert Hean to master how to leverage Confluence for Marketing teams. Learn how to plan and execute on projects seamlessly and how to turn insights into lasting organizational knowledge. 🧠
Register today!Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.