在第三方服务器中,带有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>
答案 0 :(得分:1)
使用Ext.Ajax.request发出请求时,可以在Ext端设置任意标头:
Ext.Ajax.request({
url: '/foo',
headers: {
'Content-Type': 'text/html'
}
});
然而,它看起来更像是一个黑客而不是真正的解决方案;你需要找出服务器的期望并相应地进行。