Sto utilizzando NodeJS con Express. Come posso distinguere tra una normale richiesta del browser e una richiesta AJAX? So che potrei controllare le intestazioni delle richieste ma Node/Exprsss espone queste informazioni?Rilevamento di richieste AJAX su NodeJS con Express
risposta
maggior parte dei quadri impostare il X-Requested-With
intestazione per XMLHttpRequest
, per i quali Express ha un test:
app.get('/path', function(req, res) {
var isAjaxRequest = req.xhr;
...
});
Esattamente quello che volevo, grazie. – michael
e cosa per i quadri che ** non lo ** impostano? Come AngularJS? –
Nel caso in cui il req.xhr
non è impostato, dicono in contesti quali Angularjs, where it was removed, allora si dovrebbe anche controllare se l'intestazione può accettare una risposta JSON (o XML o qualsiasi altra cosa che l'XHR invia come risposta anziché HTML).
if (req.xhr || req.headers.accept.indexOf('json') > -1) {
// send your xhr response here
} else {
// send your normal response here
}
Naturalmente, si dovrà modificare la seconda parte un po 'per abbinare il vostro caso d'uso, ma questo dovrebbe essere una risposta più completa.
Idealmente, la squadra angolare non avrebbe dovuto rimosso, ma dovrebbe avere effettivamente trovato una soluzione migliore per il problema pre-volo dei CORS', ma è così che riposa ora ...
Mi piace anche la soluzione suggerita nel collegamento: basta aggiungere 'X-Requested-With' a' $ httpProvider' se si dipende da questa funzionalità. – robertklep
Sì, è un modo, ma nel caso in cui vengano trovati altri framework con sviluppatori altrettanto pigri, allora è per loro :) –
Per un'API per uso interno, credo che aggiungere l'intestazione sia la cosa giusta da fare. Se la tua API verrà utilizzata da altri, anche se la fortuna è davvero buona. Anche se potresti richiedere agli sviluppatori di aggiungere anche questa intestazione: gli sviluppatori dovrebbero essere abbastanza intelligenti da essere in grado di farlo. –
- 1. Richieste di tempo in NodeJS/Express
- 2. Rilevamento di richieste Ajax nel selenio
- 3. jQuery Chiamata AJAX al login Passportjs su Express (nodejs) Framework
- 4. Nodejs/express, shutdown con garbo
- 5. NodeJS express make get request
- 6. NodeJS Express - route separate su due porte
- 7. Come posso fare richieste AJAX usando il framework Express?
- 8. richieste ajax multiple con jquery
- 9. Come promettere NodeJS Express con Bluebird
- 10. node.js express ajax sessions
- 11. Nodejs con socket.io su Heroku
- 12. Perdita di memoria con richieste AJAX + jQuery
- 13. Due app "Express" in un server NodeJS?
- 14. Codice di errore restituito Nodejs Express con Res.Render
- 15. Problemi con richieste ajax con un'applicazione PhoneGap
- 16. nodejs/express. rigenerare la sessione
- 17. Richieste AJAX tra domini con IE9
- 18. Debug richieste AJAX
- 19. nodeJS-Express o Meteor o Derby
- 20. NodeJS smette di rispondere dopo 11 richieste
- 21. Rilevamento di richieste HTTPS in PHP
- 22. Disabilitare la convalida csrf per alcune richieste su Express
- 23. Come risolvere i messaggi "Aborted" di Firebug su richieste Ajax?
- 24. Nessun cookie di sessione su Internet Explorer 9 Richieste AJAX
- 25. Caricamento immagine fallito w/nodejs express
- 26. Forza le richieste su https in Express/Node
- 27. NodeJS Express codifica l'URL - come decodificare
- 28. NodeJS + Express: Come proteggere un URL
- 29. Quando si utilizza Express con NodeJS - Come funziona View Cache?
- 30. Nodejs - Req.body undefined in post con express 4.9.0
ho sempre consolo. log() l'oggetto req. In questo modo posso controllare un numero di oggetti utili che contiene. –
@AkshatJiwanSharma Ho iniziato a fare anche questo, è pazzesco pensare che non ho usato questa tecnica prima! – sharkman