问题
We can send JSON to Struts2 actions by json
interceptor. There is good sample at http://tech.learnerandtutor.com/send-json-object-to-struts-2-action-by-jquery-ajax/.
The json
interceptor requires that the requests content type
be application/json
or application/json-rpc
this can be set when we directly use Ajax like:
$.ajax({
url: "writeJSON.action",
data: data1,
dataType: 'json',
contentType: 'application/json',
But we are using struts 2 jquery plugin tags (sj:a
and sj:submit
...) which manage ajax calls for us.
Is there any way that we can set the contentType
with these tags.
I did not find tag properties for this.
If it is not implemented is there any other way to set it.
回答1:
You should set Content-type: application/json
header to xhr object that is used by the $.ajax()
.
$.ajax({
url: "writeJSON.action",
data: data1,
dataType: 'json',
contentType: 'application/json',
The plugin is using $.ajaxSubmit()
, this kind of submission should be eliminated because it doesn't work with json data.
来源:https://stackoverflow.com/questions/39750113/send-json-object-to-struts-2-action-by-using-strut2-jquery-plugin-tags