Web applications 内容类型json返回http 404

Web applications 内容类型json返回http 404,web-applications,extjs,struts2,tomcat7,Web Applications,Extjs,Struts2,Tomcat7,在第三方服务器中,当带有EXt JS 4的web应用程序(服务器端Struts 2)发出内容类型为application/json的ajax请求时;charset=utf-8webserver返回未找到的页面http 404/403状态代码。但如果我们通过浏览器url栏使用纯文本/html发出相同的请求,则会收到响应。问题是什么 有没有办法通过发送不同的内容类型来模拟请求,我已经尝试了以下html表单,但它只发送内容类型:application/x-www-form-urlencoded <

在第三方服务器中,当带有EXt JS 4的web应用程序(服务器端Struts 2)发出内容类型为application/json的ajax请求时;charset=utf-8webserver返回未找到的页面http 404/403状态代码。但如果我们通过浏览器url栏使用纯文本/html发出相同的请求,则会收到响应。问题是什么

有没有办法通过发送不同的内容类型来模拟请求,我已经尝试了以下html表单,但它只发送内容类型:application/x-www-form-urlencoded

<html>
<body>
<form action="http://abc.com/abc?" method="post" enctype="application/json; charset=utf-8">

<input type='submit'/>
</form>
</body>
</html>

服务器或tomcat可以单独限制特定的内容类型吗

<action name="abc" class="com.stutzen.rhs.abc.Abc" method="abc">
        <interceptor-ref name="json">
            <!--param name="contentType">application/json</param-->
        </interceptor-ref>
        <result type="json">
            <param name="excludeProperties">
                data,model
            </param>
        </result>
    </action>

数据、模型

使用Ext.Ajax.request发出请求时,您可以在Ext端设置任意标题:

Ext.Ajax.request({
    url: '/foo',
    headers: {
        'Content-Type': 'text/html'
    }
});

然而,它看起来更像一个黑客而不是真正的解决方案;您需要找出服务器期望的内容并相应地进行操作。

当然,服务器可以分析请求头并根据找到的内容返回响应。这是一个很好的示例,我尝试了,并得到了响应。但在带有json插件的服务器端struts中,它需要的内容类型为application/json。但无论如何,我得到了一个空白的结果页。所以类被加载,并且它正在为除application/json之外的内容类型请求提供服务,那么为什么不单独为它提供服务呢。在问题中也提供了struts配置。我无法帮助您进行struts配置,因为我不熟悉它。