2015-03-17 1 views
5

Я столкнулся с этим вопросом на экзамене. Может кто-то помочь с этим. В моем исследовании я обнаружил, что dataType - это нечто вроде «json» или «xml», а не точный тип mime. Принимает в другом ручном использовании литеральный объект для определения типа mime. (Судя по this). Что-то вроде:У меня проблема с ajax-вызовом на один экзамен

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

И типа контента для

При отправке данных на сервер, используйте этот тип контента.

из документации по jQuery.

Если кто-то может помочь с этим вопросом, это будет здорово. Благодарю.

экзамен Вопрос:

Вы разрабатываете веб-приложение, которое извлекает данные из веб-службы . Полученные данные представляют собой собственный двоичный тип данных с именем bint. Данные также могут быть представлены в XML. Два существующих метода с именем parseXml() и parseBint() определены на странице.

Приложение должно:? Получать и анализировать данные из веб-службы с использованием двоичного формата, если это возможно? Получите и проанализируйте данные из веб-службы, используя XML, если бинарный формат невозможен

Вам необходимо разработать приложение, соответствующее требованиям. Что вы должны делать ? (Чтобы ответить, перетащите соответствующий сегмент кода в правильное местоположение . Каждый сегмент кода может использоваться один раз, более одного раза, или вообще отсутствует. Возможно, вам потребуется перетащить разделительную панель между панелями или прокрутите, чтобы просмотреть содержимое.)

Код:

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); 
    } 
}); 
+0

Судя по документации JQuery не может быть DATATYPE. «Доступными типами данных являются текст, html, xml, json, jsonp и скрипт». –

+4

Я предполагаю, что принимает (вариант 1) и getResponseHeader (вариант 1) - правильный ответ, просто догадка. Это и есть причина спросить. –

ответ

2

Я думаю, что ключ здесь этот бит:

Полученные данные представляют собой собственный двоичный тип данных с именем bint.

Это значит, что вы ожидаете, bint, не отправляя bint. Поэтому ответ здесь accepts.

Для второй части:

  1. type не тип MIME, это строка (источник here)
  2. request.mimeType не является допустимым свойством XmlHttpRequest (источник here)

Поэтому ответ request.getResponseHeader("Content-Type") == 'application/bint' (источник here)

-1

Вариант 1: accepts: 'application/bint, text/xml', потому что он ожидал, бинт или XML-Type

Вариант 2: if(type == 'application/bint')

это как пыльник

dataType: xpto, 
dataFilter: function(data, type){ 
    alert(type); //xpto 
} 
Смежные вопросы