Ciao, sto costruendo una applicazione client-server per una chat tra gli utenti e la risposta proveniente da una Api (Api.ai). Questi sono i file, mi viene fuori un errore e non lo capisco:
Fetch API cannot load http://127.0.0.1:3000/?question=Hi. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8080' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
script.min.js:30 Error: TypeError: Failed to fetch
Dove sto sbagliando?
Grazie
client.js
codice:
var http = require('http');
document.getElementById('submit').onclick = () => {
console.log('OK');
const question = '/?question=' + encodeURIComponent(document.getElementById('question').value);
const options =
{
hostname: '127.0.0.1',
port: 3000,
path: question,
method: 'GET',
headers: {
// Authorization: 'Bearer ' + clientAccessToken,
},
};
http.get(options, (res) => {
let body = '';
res.on('data', (data) => {
body += data;
});
res.on('end', () => {
const result = JSON.parse(body);
console.log('result' + result);
});
}).on('error', (e) => {
console.log('Error: ' + e);
});
};
server.js
codice:
var apiai = require('apiai');
const http = require('http');
var url = require('url');
const server = http.createServer((req, res) => {
var parts = url.parse(req.url, true);
var query = parts.query;
console.log(query.question);
var question = query.question;
var app = apiai("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
var request = app.textRequest(question, {
sessionId: '<unique session id>'
});
request.on('response', function(response) {
var ress = response.result.fulfillment.speech;
res.writeHead(200, {"Content-Type": "text/plain"});
res.write(ress);
// res.end(ress);
console.log(response.result.fulfillment.speech);
});
request.on('error', function(error) {
console.log(error);
});
request.end();
});
server.listen(3000);