VDP*_*VDP 3 javascript extjs http-headers
我有一个带有上传字段的ExtJs表单.当我对表单进行求和时,Accept-header是错误的.响应是JSON,但发送的Accept-header是:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Run Code Online (Sandbox Code Playgroud)
我有根据的猜测是它是浏览器的默认值.
在Chrome中,会出现警告:资源被解释为Document但是使用MIME类型application/json进行传输.
在FireFox中,这会导致文件下载.
结论:我必须将Accept-header更改/设置为 application/json
Sencha的文档 sais它有一个headers
参数,但我已经测试过,对于fileupload它不起作用.评论称它不受支持.(在另一个线程中找到相同的结果)
任何摆脱文件下载/设置正确的Accept-header的建议......它不一定是ExtJs sollution.如果你能给我一个简单的javaScript解决方案来设置文件上传表单上的accept头,我可以把它塑造成一个sencha框架.
更新:
ExtJS表单提交:
form.submit({
url: API_URLS.addDocument,
waitMsg: 'Uploading your document...',
headers: {
"Accept": 'application/json' //doesn't work
},
success: function() {
...
},
failure: function(){
...
}
});
Run Code Online (Sandbox Code Playgroud)
在幕后它创建了一个类似于此的普通形式:
<form action="API_URLS.addDocument" enctype="multipart/form-data" method="post">
<input type="file"/>
</form>
Run Code Online (Sandbox Code Playgroud)
哪个可以通过javaScript(submit()
)提交
该Accept
头只是要求服务器与给定类型的数据作出反应.的*
在缺省头装置"或任何其他"(虽然Q值把较低的优先级,然后这一点).
如果响应是JSON并且您需要JSON,那么您根本不需要触摸Accept标头.
问题是,如果我正确地在行之间读取,则您尝试使用iframe执行Ajax文件上载,并且Firefox不会尝试将JSON文件呈现为文档.
有两种方法可以解决这个问题.
归档时间: |
|
查看次数: |
4532 次 |
最近记录: |