【问题标题】:set content type response in ext.data.store在 ext.data.store 中设置内容类型响应
【发布时间】:2012-04-20 18:19:34
【问题描述】:

我正在使用 ext.data.store 在 extjs 4.0 中实现自动完成组合框

var RecordDef = Ext.data.Record.create([
    {name: 'description', mapping: 'description'},    
    {name: 'lat'},
    {name: 'lng'}           
]);

var ds = new Ext.data.Store({
    proxy: new Ext.data.HttpProxy({url:'geo-multi.xml'}),
    headers: {
        'Content-Type': 'application/xml'
    },
    reader: new Ext.data.XmlReader({
        totalRecords: 'count',
        record: 'result'
    }, RecordDef)
});

问题是在检查 firebug 后接收 text/html 作为响应类型标头:

Connection  Keep-Alive
Content-Length  409
Content-Type    text/html;charset=UTF-8
Date    Sat, 07 Apr 2012 13:59:33 GMT
Last-Modified   Sun, 08 Jan 2012 08:11:37 GMT
Server  Winstone Servlet Engine v0.9.10

谁能帮我将正确的内容类型标题设置为 text/xml 吗?

【问题讨论】:

  • 您使用哪个 Web 服务器来提供 xml 文件?

标签: xml extjs content-type


【解决方案1】:

不确定您在服务器端使用的是哪种语言,但您应该确保在服务器响应中设置了正确的内容类型

如果您使用的是 PHP,那么您可以使用此方法设置内容类型

// We'll be outputting XML
header('Content-type: application/xml');

在这里查看:

change mime type of output in php

【讨论】:

  • 我没有使用 php 来生成我的 XML 文件,而是直接使用 XML 文件...是否可以直接从我的 JS 文件中设置内容类型标头?
  • 那么服务器应该根据扩展名正确设置它,那么你使用哪个服务器来获取这个文件? (apache ?) 你能检查服务器是否根据响应头中的扩展名设置了正确的 MIME 类型吗?
  • 我的文件的扩展名是 .xml,我没有使用 apache 服务器...如果我使用的是 php 文件,我可以使用 header header("Content-type : 应用程序/xml");但是我如何使用 ext.data.httpproxy 将 PHP xml 输出解析到我的组合中(在这种情况下跨域请求无效)
  • 那么你的网络服务器应该根据文件的 MIME 类型(扩展名)为响应设置默认的内容类型,所以你能检查你的服务器中是否有任何设置,apache 会自动这样做使用/etc/mime.types 文件
猜你喜欢
  • 2015-03-10
  • 2010-12-12
  • 2016-12-05
  • 2019-03-03
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 2011-07-26
  • 2021-05-23
相关资源
最近更新 更多