Dobra, w jedną stronę się udało wykonując prosty punkt końcowy:
Kopiuj
app.get('/api/jobtickets', (req, res) => res.json({
"result": "ok",
"job": uploadJobticket.waitForJob()
}))
Kopiuj
exports.order = (req, res) =>
res.render('order', {
job: uploadJobticket.waitForJob()
})
Po wejściu na stronę /api/jobtickets funkcja się wykonuje oraz można pobrać zawartość JSON przy pomocy fetch.
Idąc tym tropem chciałem pobrać numer zamówienia ze strony Klienta i dodać ją do drugiego punktu końcowego /api/order (aplikacja będzie docelowo w iframe na stronie gdzie ten numer występuje) .
Punkt końcowy:
Kopiuj
let data = {
"result": "ok",
"test" : "test"
}
app.get('/api/order', (req, res) => {
res.json(data)
}
)
Zawartość JSON pojawia się na stronie /api/order i można ją pobrać przy pomocy fetch ale problem pojawia się jak chcę dodać nowy wpis od strony klienta przy użyciu metod POST lub PUT:
Kopiuj
const OrderId = parent.document.getElementById("nrZam").innerHTML;
const data = {
"order": OrderId,
};
const url = '/api/order'
const headers = new Headers();
headers.append("Content-Type", "application/json");
fetch(url, {
method: "post",
body: JSON.stringify(data),
headers: {
'Content-Type': 'text/json',
}
})
.then(res => {
if (res.ok) {
console.log(res.headers.get("Content-Type"))
console.log("Połączenie Aktywne")
return res.json()
} else {
return Promise.reject(`Http error: ${res.status}`)
}
})
.then(res =>
console.log("Status połączenia: " + JSON.stringify(res)),
)
wynik w konsoli mam taki:
text/html; charset=utf-8
Połączenie Aktywne
VM97:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0
Promise.then (asynchronicznie)
Pobieranie – ładowanie zostało zakończone: POST „http://127.0.0.1:3000/api/order”.
Okazuje się że przeglądarka zwraca błąd 404 stąd znak html'a "<" co jest zapewne przyczyną ale nie potrafię zlokalizować błędu, a siedzę przy tym już od 2 dni. Znalazłem 2 możliwe przyczyny błędu 404: nieprawidłowy adres lub błędy w trasie - niestety nigdzie takich nie wychwyciłem. Może macie lepsze oko... z góry dzięki za pomoc