Извлечение данных с веб-страницы с использованием скрипта и последующий доступ к нему с помощью узла js server - PullRequest
0 голосов
/ 21 мая 2018

У меня есть HTML-файл index.html с локальным сценарием script.js, работающим в localhost:8080 с использованием сценария NodeServer.js в Node.js.

Я хочу это всякий раз, когда я введите данные в поля ввода, они должны быть извлечены локальным сценарием , а затем script.js экспортировать их в приложение NodeServer.js, которое будет дополнительно регистрировать данные на консоли.

Я использую браузер Chrome - 65.0.3325.181

Вот мой index.html:

<!DOCTYPE html>
<html>
	<head>
		<title>Website</title>
    <!-- My local script -->
		<script src='file:///F:/RahulVerma/NodeJS/LoginPage/script.js'></script>
	</head>
	<body>
		<input type='text' placeholder='Enter username' id='username'/><br/>
		<input type='password' placeholder='Enter password' id='password'/><hr/>
    <!-- getData() is present in local script -->
		<button onclick='getData();'>Submit</button>
	</body>
</html>

Вот мой script.js:

let getData = () => {
	let username = document.getElementById('username').value;
	let password = document.getElementById('password').value;

	module.exports = { username, password }; // exporting username and password to server running through node.js
}

И мой NodeServer.js:

const http = require('http'); // to create server
const fs = require('fs'); // to read index.html
const script = require('F:/RahulVerma/NodeJS/LoginPage/script'); // to fetch data from script.js

// My Server
let server = (request, response) => {
	fs.readFile('F:/RahulVerma/NodeJS/LoginPage/index.html', 'utf8', (error, result) => {
		if(error) {
			response.writeHead(404, {'Content-Type': 'text/plain'});
			response.write(`Error: ${error}`);
		} else {
			response.writeHead(200, {'Content-Type': 'text/html'});
			response.write(result);
		}

		response.end();
	});
}

// Creating server
http.createServer(server).listen(8080);
console.log(script.username, script.password); // logging data onto the console

Когда я набираю node NodeServer.js в Node.js 9.3.0 (ia32) и npm, index.html начинает работать на localhost:8080, но script.jsне отображается в браузере из-за следующей ошибки: Not allowed to load local resource: file:///F:/RahulVerma/NodeJS/LoginPage/script.js

Что я делаю не так?

1 Ответ

0 голосов
/ 21 мая 2018

ошибка cors: механизм, который использует дополнительные заголовки HTTP, чтобы позволить пользовательскому агенту получить разрешение на доступ к выбранным ресурсам с сервера с другим источником

// Create our server
var server;
server = http.createServer(function(req,res){
// Set CORS headers
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
response.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");;
if ( req.method === 'OPTIONS' ) {
    res.writeHead(200);
    res.end();
    return;
}
});

дальнейшее разъяснение посещение cors переполнения стека

Лучший пользователь ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...