0

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

有什么方法可以通过发送不同的内容类型来模拟请求,我试过下面的 html 表单,但它只发送Content-Type: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>
4

1 回答 1

1

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

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

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

于 2012-08-11T18:30:25.183 回答