使用 strut2 jquery 插件标签将 JSON 对象发送到 Struts 2 操作

2022-01-16 00:00:00 json jquery ajax struts2 struts2-jquery

我们可以通过 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 typeapplication/jsonapplication/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:asj: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.

相关文章