Je veux utiliser l'API d'extraction pour obtenir un document HMTL complet à partir d'une URL.
let config = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Accept': 'text/html',
'Accept-Language': 'zh-CN',
'Cache-Control': 'no-cache'
},
mode: 'no-cors'};
fetch('http://www.baidu.com', config).then((res)=> {
console.log(res);}).then((text)=> {});
exécuter le code en chrome, il déclenche une demande et renvoie html en réseau chrome. mais chercher le retour retour:
Pourquoi le statut est-il et comment puis-je obtenir la résolution correcte comme dans le newwork chrome?
Sur le no-cors
partie de config.mode
:
no-cors - Empêche la méthode d'être autre chose que HEAD, GET ou POST. Si un serviceWorker intercepte ces demandes, il ne peut ajouter ou remplacer aucun en-tête, à l'exception de ceux-ci. En outre, JavaScript ne peut accéder aux propriétés de la réponse résultante. Cela garantit que ServiceWorkers n'affecte pas la sémantique du Web et évite les problèmes de sécurité et de confidentialité résultant de la fuite de données sur plusieurs domaines.
En effet, la réponse que vous obtenez en faisant une telle demande (avec no-cors
spécifié en tant que mode) ne contiendra aucune information indiquant si la demande a réussi ou non, ce qui donne le code d'état 0. Supprimer mode
de votre appel fetch
montrera que le CORS avait fait a échoué.
Pour savoir ce que 0 signifie dans votre cas particulier, consultez d’autres réponses SO.
Je ne sais pas comment faire cela dans un environnement de navigateur, mais je sais qu'il est disponible pour fetch
quelque chose d'un site d'origine multiple dans le noeud.
require('es6-promise').polyfill();
require('isomorphic-fetch');
fetch('https://www.baidu.com', {
mode: 'no-cors'
})
.then((res) => {
console.log(res.status); //=> 200
});
Ainsi, vous pouvez utiliser un serveur de nœud pour fetch
ce que vous voulez, puis respond
pour votre client.
Je souhaite aussi fetch
quelque chose de certains sites dans un navigateur, ce qui semble impossible. C'est peut-être vraiment impossible de le faire, car Internet doit protéger les sites Web sur lesquels nous souhaitons obtenir des ressources.