2014-10-31 2 views
0

Я пытаюсь вставить заголовок Accept в json-файл. Но я не знаю, почему тест не работает. Вы можете мне помочь? Вот мой код:Применение заголовка Accept в javascript

function doJSONRequest(type, url, headers, data, callback){ 
var r = new XMLHttpRequest(); 
if(type && url && headers && callback && (arguments.length == 5)){ 
    r.open(type, url, true); 
    if((type != "GET") && (type != "POST") && (type != "PUT") && (type != "DELETE")){ 
     throw new Error('The value is not recognized') 
    } else if((type == "POST") || (type == "PUT") || (type == "GET") || (type == "DELETE")) { 
     try { 
      if(data === undefined) { 
       data = null; 
      } 
      else if(typeof data === 'object'){ 
       r.send(JSON.stringify(data)); 
      } else { 
       throw new Error("The data is undefined") 
      } 
     } catch (e) { 
      throw new Error("The data has no JSON format") 
     } 
    } else if((type == "POST") || (type == "PUT")){ 

     r.setRequestHeader("Content-type","application/json"); 
     r.send(JSON.stringify(data)); 
    } 

А вот тест я использую:

var expectedGETHeader = { 
    "Accept": "application/json" 
} 

doJSONRequest("GET", baseUrl, headers, null, callback1); 

setTimeout(function(){ 
    QUnit.start(); 
    assert.deepEqual(requests[4].requestHeaders, expectedGETHeader, "should set the \"Accept\": \"application/json\" header for GET requests"); 
},100); 

Можете ли вы помочь мне передать его? Специфическая ошибка:

should set the "Accept": "application/json" header for GET requests 
Expected: 
{ 
    "Accept": "application/json" 
} 
Result:  
{} 
Diff: 
{ 
    "Accept": "application/json" 
} {} 

РЕШЕНИЕ Добавление строки кода после открытия ее r.setRequestHeader ("Принять", "приложения/JSON");

ответ

1

Я не вижу заголовок Accept в любом месте. Возможно, вы могли сделать это прямо перед тем, как позвонить r.send(JSON.stringify(data));, например:

 if(data === undefined) { 
      data = null; 
     } 
     else if(typeof data === 'object'){ 
      r.setRequestHeader('Accept', 'application/json'); // <-- this was added 
      r.send(JSON.stringify(data)); 
     } else { 
      throw new Error("The data is undefined") 
     } 
Смежные вопросы