2017-01-04 5 views
0

Я новичок в javascript и реагирую, и я пытаюсь создать клиент, который потребляет oData. При попытке к выполнению функции jayDatas initService я получил следующее сообщение об ошибке:React Native JayData XML DOM parser не поддерживается

{ message: 'XML DOM parser not supported', 
    srcText: '', 
    errorXmlText: '', 
    request: 
    { requestUri: 'https://my322506.sapbydesign.com/sap/byd/odata/cust/v1/demoapp/$metadata', 
    method: 'GET', 
    headers: 
     { Authorization: 'Basic Y2dyOjF6M2k3bU05', 
     Accept: 'application/xml', 
     'OData-MaxVersion': '4.0' }, 
    recognizeDates: false, 
    callbackParameterName: '$callback', 
    formatQueryString: '$format=json', 
    enableJsonpCallback: false, 
    async: true }, 
    response: 
{ requestUri: 'https://my322506.sapbydesign.com/sap/byd/odata/cust/v1/demoapp/$metadata', 
    statusCode: 200, 
    statusText: undefined, 
    headers: 
     [ 'c4c-odata-response-time': '691 ms', 
     dataserviceversion: '1.0', 
     'Content-Type': 'application/xml' ], 

... 
Possible Unhandled Promise Rejection (id: 0): 
XML DOM parser not supported` 

Мой код:

jayData 
    .initService('https://my322506.sapbydesign.com/sap/byd/odata/cust/v1/demoapp/', credentials) 
    .then(function (remoteDB, contextFactory, contexType) { 
    console.log('HELLO'); 
    }); 

ошибка происходит из файла jaydata-odatajs \ Lib \ xml.js Line 190 код :

function xmlParse(text) { 
var domParser = undefined; 
if (utils.inBrowser()) { 
    domParser = window.DOMParser && new window.DOMParser(); 
} else { 
    domParser = new (require('xmldom').DOMParser)(); 
} 
var dom; 

if (!domParser) { 
    dom = msXmlParse(text); 
    if (!dom) { 
     xmlThrowParserError("XML DOM parser not supported0"); 
    } 
    return dom; 
} 

ответ

0

Хорошо, я его исправил. JayData означает, что мы находимся в браузере и пытаемся вывести парсер из окна, но в окне нет синтаксического анализатора. Так что я просто установил в окне DOMParser, и он работает.

export default class AwesomeProject extends Component { 
    constructor(props) 
    { 
     super(props); 
     window.DOMParser = require('xmldom').DOMParser; 

Спасибо!