我在一次考试中遇到了ajax问题

时间:2015-03-17 15:41:15

标签: jquery ajax json

我在考试中碰到了这个问题。有人可以帮忙吗。在我的研究中,我发现dataType类似于'json'或'xml',而不是精确的mime类型。 另一方面接受使用文字对象来定义mime-types。(由this判断)。类似的东西:

$.ajax({
    url: ...
    dataType: 'json',
    accepts: {
        xml: 'text/xml',
        text: 'text/plain'
    }
});

内容类型适用于

  

将数据发送到服务器时,请使用此内容类型。

来自jQuery文档。

如果有人能帮忙解决这个问题会很棒。感谢。

考试问题:

  

您正在开发一个从Web检索数据的Web应用程序   服务。正在检索的数据是一个名为的自定义二进制数据类型   宾特。数据也可以用XML表示。现有两种方法   命名parseXml()和parseBint()在页面上定义。

     

申请必须:?从Web服务检索和解析数据   如果可能,使用二进制格式?从中检索和解析数据   当二进制格式不可能时使用XML的Web服务

     

您需要开发应用程序以满足要求。什么   你应该这样做吗? (要回答,请将相应的代码段拖到   正确的位置。每个代码段可以使用一次,不止一次,   或者根本没有。您可能需要在窗格之间拖动拆分栏   滚动查看内容。)

代码:

var request = $.ajax({
    uri: '/',

选项1:accepts: 'application/bint, text/xml',

选项2:contentType: 'application/bint, text/xml'

选项3:dataType: 'application/bint, text/xml'

    dataFilter: function(data, type) {

选项1:if(request.getResponseHeader("Content-Type" == 'application/bint')

选项2:if(type == 'application/bint')

选项3:if(request.mimeType == 'application/bint')

    },
    success: function(data) {
        start(data);
    }
});

2 个答案:

答案 0 :(得分:2)

我认为这里的关键是这一点:

  

正在检索的数据是名为bint的自定义二进制数据类型。

这意味着您期待bint,而不是发送bint。因此,这里的答案是accepts

第二部分:

  1. type不是MIME类型,而是字符串(来源here
  2. request.mimeType不是XmlHttpRequest的有效财产(来源here
  3. 因此,答案为request.getResponseHeader("Content-Type") == 'application/bint'(来源here

答案 1 :(得分:-1)

选项1:accepts: 'application/bint, text/xml'因为预期是bint或xml类型

选项2:if(type == 'application/bint')

就像吼叫

dataType: xpto,
dataFilter: function(data, type){
    alert(type); //xpto
}