Итак, я разрабатываю веб-приложение, которое должно взаимодействовать с другой системой в другом домене. Это сообщение должно быть асинхронным. И возвращает XML-документ по завершении. Проблема, однако, в том, что я не могу сделать междоменный с XMLHttpRequest, и я не могу извлечь данные с помощью fetch. В настоящее время самое большое, что я получил, это выборка, когда я получаю данные обратно, но я не могу извлечь их из ответа.
Код запроса:
const HOST = "http://192.168.1.202:6363/"
function setobjval(name, value) {
fetch(HOST + 'setobjval?objid=' + name + '&objval=' + value, {
method: 'get',
mode: 'no-cors'
}).then(response => {
//I'm guessing the problem is here
console.log(response)
var xml = response.text()
console.log(xml)
//do stuff with the what is supposed to be xml
})
}
И консоль:
interface.js:14 Promise {<pending>}
interface.js:9 Response {type: "opaque", url: "", redirected: false, status: 0, ok: false, …}
interface.js:10 Promise {<resolved>: ""}
Итак, теперь я пишу это, я вижу 2 проблемы: 1. Тот факт, что я не могу извлечь данные из ответа. 2. Выборка завершается после операторов, которые находятся под ним.
Хорошо, поэтому, используя скрипту @ChrisG https://jsfiddle.net/khrismuc/4gvraL9d/ Я получил ошибку в консоли.
<html>
<body>
<parsererror style="display: block; white-space: pre; border: 2px solid #c77; padding: 0 1em 0 1em;
margin: 1em; background-color: #fdd; color: black">
<h3>This page contains the following errors:</h3>
<div style="font-family:monospace;font-size:12px">
error on line 1 at column 1: Extra content at the end of the document
</div>
<h3>Below is a rendering of the page up to the first error.</h3>
</parsererror>
</body>
</html>
А что касается данных, которые я ожидаю.
<response>
<result>OK</result>
<objid>long.object.id</objid>
<req>setobjval</req>
</response>