使用 strut2 jquery 插件标签将 JSON 对象发送到 Struts 2 操作
我们可以通过 json 拦截器将 JSON 发送到 Struts2 动作.http:///tech.learnerandtutor.com/send-json-object-to-struts-2-action-by-jquery-ajax/.
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/.
json 拦截器要求请求 content type 为 application/json 或 application/json-rpc这个可以在我们直接使用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',
但我们正在使用 struts 2 jquery 插件标签(sj:a 和 sj:submit ...)为我们管理 ajax 调用.
But we are using struts 2 jquery plugin tags (sj:a and sj:submit ...) which manage ajax calls for us.
有什么方法可以用这些标签设置contentType.
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.
推荐答案
您应该将 Content-type: application/json 标头设置为 $.ajax().
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',
插件使用$.ajaxSubmit(),这种提交应该被淘汰,因为它不适用于json数据.
The plugin is using $.ajaxSubmit(), this kind of submission should be eliminated because it doesn't work with json data.
相关文章