Content-type json返回http 404

时间:2012-08-11 06:15:54

标签: web-applications extjs struts2 tomcat7

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

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

<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>

1 个答案:

答案 0 :(得分:1)

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

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

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