哪种MIME类型返回?

我有一个发送AJAX请求的JavaScript代码的HTML页面。 该请求正在由我的servlet处理。 我认为从servlet(响应内容类型)作为“application / json”MIME类型返回数据“更好”和“更正确”。 然而,它使MSIE变得疯狂 - 意味着浏览器似乎无法显示/处理这种MIME类型(Chrome / FF很好)。 当我没有明确指定类型时 - 在所有浏览器中都可以正常工作。 对于AJAX请求,servlet是否应该返回MIME类型是真的吗?

更新:我的服务器端在Java中实现,MIME类型由以下行定义:

response.setContentType("application/json");

回应是以下文字(仅举例):

{ "status" : "DONE", "progress" : 100, "url" : "/7909118672283641787.docx" , "totalBytes" : 17696 } 

Update2:由我的客户端代码构成的片段(纯javascript,无库)

function display_progress(http) {
    if (http.readyState == 4) {
        var again = false;

        if (http.status != 200) {
            document.getElementById('progress_bar').innerHTML = "Wrong response status received: " + http.status + "! Fix the server-side code.";
        } else {
            try {
                var resp = eval('(' + http.responseText + ')');             
                var status = resp['status'];

                if (status == 'DOING') {
                    document.getElementById('progress_bar').innerHTML = "Uploaded: " + resp['progress'] + "%";
                    again = true;
                } else if (status == 'DONE'){
                    document.getElementById('progress_bar').innerHTML = 
                        "Uploaded 100% (" + resp['totalBytes'] + " bytes)! Your file is <a href="" + resp['url'] + ""/>" + "here" + "</a>";
                } else if (status == 'ERROR') {
                    document.getElementById('progress_bar').innerHTML = "Error while uploading!";
                } else {
                    document.getElementById('progress_bar').innerHTML = "Unexpected state: " + status + "! Fix the server-side code.";
                }
            } catch (ex) {
                document.getElementById('progress_bar').innerHTML = "Wrong response received: " + resp + "! Fix the server-side code.";
            }
        }

        if (again) {
            setTimeout("update_progress()", 500);
        }
    }

将其作为原始文本返回,然后使用JSON.parse()转换为可用的JSON。

JSON不是文本,因此Firefox不知道如何处理它。 因此,你需要基本上将它作为它知道的事物来服务。


不,这是不正确的....你可以为AJAX请求设置MIME类型...如果你没有设置它们......它们采用默认值....恰巧是......“text /平原”。 所以我想默认对你来说工作正常....更常见的响应类型恰好是“text / html”。 这一切都取决于你将用来处理servlet响应的代码......问题可能出在代码的那一部分....


如此处所述:http: text/javascript是正确的解决方法。

链接地址: http://www.djcxy.com/p/8257.html

上一篇: Which MIME type to return?

下一篇: Shell command to tar directory excluding certain files/folders