Hi Tweakers,
Momenteel ben ik bezig met een het proberen te bouwen van een webapp en het leren van React! Voor de serverside gebruik ik NodeJS en ReactJS dus aan de clientside (samen met jQuery). Ik loop tegen problemen aan met het uitvoeren van Ajax calls.
Een voorbeeld van mijn ajax code:
De code wordt wél uitgevoerd en er wordt data opgehaald. Ook in de POST variant word de code uitgevoerd en het bestand geupdate. Echter blijft mijn console een error loggen: `net::ERR_CONNECTION_REFUSED`. Het lukt mij niet deze goed te debuggen of op te lossen.

De ajax call leest een bestand uit en returnt de waarde hiervan.
Na veel Google werk vond ik een aantal oplossing. De meeste oplossing met deze error icm Node en Ajax waren gericht op het gebruik van helaas socket.io.
Het is ook lastig te zeggen wanneer de error precies voorkomt. Het gebeurd bij zowel POST als GET. Wanneer de pagina laad `componentDidMount` is er geen error. Zodra de ajax handmatig getriggert wordt komt de error tevoorschijn, maar.. ook niet altijd, het lijkt erop dat dit alleen gebeurd als je het binnen 'x' seconden na elkaar doet.
Alvast bedankt voor de hulp!
EDIT:
Bovenstaande screenshot was uit Chrome. In Firefox is er geen error over net::ERR_CONNECTION_REFUSED, maar wordt alleen de error functie van de ajax call uitgevoerd:

Safari geeft een soortgelijke error als chrome: "Failed to load resource: Geen verbinding mogelijk met de server"
Momenteel ben ik bezig met een het proberen te bouwen van een webapp en het leren van React! Voor de serverside gebruik ik NodeJS en ReactJS dus aan de clientside (samen met jQuery). Ik loop tegen problemen aan met het uitvoeren van Ajax calls.
Een voorbeeld van mijn ajax code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| loadQuestionsFromServer: function() { if(this.state.request) this.state.request.abort(); this.state.request = $.ajax({ url: '/api/questions/', dataType: 'json', cache: false, success: function(obj) { this.setState({ questions: obj }); }.bind(this), error: function(xhr, status, err) { console.error('/api/questions', status, err.toString()); }.bind(this) }); } |
De code wordt wél uitgevoerd en er wordt data opgehaald. Ook in de POST variant word de code uitgevoerd en het bestand geupdate. Echter blijft mijn console een error loggen: `net::ERR_CONNECTION_REFUSED`. Het lukt mij niet deze goed te debuggen of op te lossen.

De ajax call leest een bestand uit en returnt de waarde hiervan.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| var QUESTION_FILE = path.join(__dirname, '../public/questions.json'); router.get('/questions', function(req, res) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Cache-Control', 'no-cache'); fs.readFile(QUESTION_FILE, function(err, data) { if (err) { console.error(err); process.exit(1); } res.json(JSON.parse(data)); }); }); |
Na veel Google werk vond ik een aantal oplossing. De meeste oplossing met deze error icm Node en Ajax waren gericht op het gebruik van helaas socket.io.
- Gebruik lokaal IP-adres ipv localhost
- `setHeaders Access-Control-Allow-Origin` (zoals in de code ook te zien is)
- `crossDomain: true` toevoegen aan de ajax call
Het is ook lastig te zeggen wanneer de error precies voorkomt. Het gebeurd bij zowel POST als GET. Wanneer de pagina laad `componentDidMount` is er geen error. Zodra de ajax handmatig getriggert wordt komt de error tevoorschijn, maar.. ook niet altijd, het lijkt erop dat dit alleen gebeurd als je het binnen 'x' seconden na elkaar doet.
Alvast bedankt voor de hulp!
EDIT:
Bovenstaande screenshot was uit Chrome. In Firefox is er geen error over net::ERR_CONNECTION_REFUSED, maar wordt alleen de error functie van de ajax call uitgevoerd:

Safari geeft een soortgelijke error als chrome: "Failed to load resource: Geen verbinding mogelijk met de server"
[ Voor 10% gewijzigd door Ronnyrr op 01-03-2016 11:24 ]