scène:
La séparation frontale et back-end, et l'interface de développement et d'appel avant local auront des problèmes de domaine croisé. Il existe généralement trois solutions:
1. Emballez l'interface backend pour s'exécuter localement (inconvénients: chaque fois que la mise à jour du backend est mise à jour, vous devez vous rendre au prochain package de mise à jour pour le serveur de test, et vous devez également créer un environnement en cours d'exécution Java localement, ce qui est gênant)
2.
3. Utilisez des NodeJS pour construire un serveur HTTP local et transmettez-le lors de l'accès à l'URL de l'interface, résolvez parfaitement le problème du domaine croisé pendant le développement local.
Techniques utilisées:
1. Créez un serveur HTTP local avec NodeJS
2. Appliquer le nœud-http-proxy pour transférer les URL d'interface
Méthodes spécifiques:
1. Node.js construit un serveur HTTP local. Reportez-vous à "NodeJS de Shawn.xie construit un serveur HTTP local"
2. Node.js est utilisé pour transmettre le nœud-http-proxy. Le document officiel est: https://github.com/nodejitsu/node-http-proxy#using-https
3. La méthode d'opération est référencée: http://hao.jser.com/archive/10394/?utm_source=Tuicool&utm_medium=referral
4. Voici mes propres opérations pratiques
Préparation du projet
1. Initialisation NPM
npm init
2. Installez le module Node-HTTP-Proxy
NPM Installer HTTP-Proxy --Save-Dev
3. Structure du projet
Dans l'exemple suivant, nous mettons le fichier HTML directement dans le répertoire racine './', ou spécifions un répertoire de site Web, qui peut être personnalisé dans proxy.js
Configurer le serveur HTTP et le transfert de proxy
var port = 3000; var http = require ('http'); var url = require ('url'); var fs = require ('fs'); var mine = require ('./ mine'). types; var path = require ('path'); var proxy = httpproxy.createProxyServer ({cible: 'http://192.168.10.38:8180/', // Adresse d'interface // Les paramètres suivants sont utilisés pour https // ssl: {// key: fs.readfilesync ('Server_decrypt.Key', 'utf8'), // cerf fs.readfilesync ('server.crt', 'utf8') //}, // sécurisé: false}); proxy.on ('error', fonction (err, req, res) {res.writehead (500, {'contenu-type': 'text / plain'}); console.log (err); resend (' Message. ');}); var server = http.createServer (fonction (request, réponse) {var pathname = url.parse (request.url) .pathname; // var realPath = path.join ("pages principales", pathname); // spécifier le répertoire racine var realPath = path.join ("./", PathName); console.log (pathname); console.log (realPath); var ext = path.ExtName (realPath); ext = ext? réponse); return;} fs.exists (realPath, function (existant) {if (! existant) {réponse.writeHead (404, {'contenu-type': 'text / plain'}); réponse.write ("cette demande URL" + pathname + "n'a pas été trouvée sur ce serveur."); Response.end ();} else {Fs.ReadFile (realPath, "Binary", function (}, ERR, ERR, Fs.ReadFile (RealPath, "Binary,". file) {if (err) {réponse.writeHead (500, {'contenu-type': 'text / plain'}); réponse.end (err);} else {var contentType = mine [ext] || "binaire"); réponse.end ();}});}});}); server.Listen (port); console.log ("Server en cours d'exécution au port:" + port + ".");Mien.js
Ici, nous nous référons au code source de Shawn.xie et ajoutons quelques fichiers de police mime.
export.types = {"css": "text / css", "gif": "image / gif", "html": "text / html", "ico": "image / x-icon", "jpeg": "image / jpeg", "jpg": "json / jpeg" "Application / JSON", "PDF": "Application / PDF", "Png": "Image / Png", "SVG": "Image / SVG + XML", "SWF": "Application / X-Shockwave-Flash", "TIFF": "Image / TIFF", "TXT": "Text / Plain", "WAV": "Audio / X-wav", "Wma" "Audio / x-ms-wma", "wmv": "vidéo / x-ms-wmv", "xml": "text / xml", "woff": "application / x-woff", "woff2": "application / x-woff2", "tff": "application / x-font-truetype" "Application / vnd.ms-FontObject"};Ce qui précède est tout le code source
Modifiez ensuite l'adresse d'interface du projet en http: // localhost: 3000 / ...
Démarrer le service Nodejs
Démarrez CMD, localisez le répertoire du projet et exécutez
Node proxy.js
accéder:
http: // localhost: 3000 / index.html
Vous pouvez voir que les données seront obtenues à partir de http: // localhost: 3000 / ...... dans le projet, puis transmises vers la zone locale.
De cette façon, il n'y a pas de domaine croisé.
Ce qui précède est l'introduction de l'éditeur à Node.js et Node-Http-Proxy pour résoudre le problème du domaine croisé du développement local Ajax. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!