2 дня пытался понять, как с помощью Iframe передавать параметры на сервер, написал такой код:
<script>
function send(params, action){
var ifr = document.createElement('iframe');
var targ = 'i'+parseInt(Math.random()*100);
ifr.name = targ;
ifr.src = action;
ifr.style.display='none';
document.body.appendChild(ifr);
var form = document.createElement('form');
form.method = 'post';
form.action = action;
form.target = targ;
for(var key in params){
var inp = document.createElement('input');
inp.type='hidden';
inp.name = key;
inp.value = params[key];
form.appendChild(inp);
}
document.body.appendChild(form);
form.submit();
}
send({parametr: "test"}, 'http://127.0.0.1:8080');
</script>
Проверял я этот код на node.js
var http = require('http');
var url = require('url');
var server = new http.Server(function(req, res){
console.log(req.method, req.url);
var urlParsed = url.parse(req.url);
console.log(urlParsed.query);
res.end;
});
server.listen(8080, '127.0.0.1')
А потом ради любопытства я просто начал вставлять любые элементы, у которых есть атрибут src и так же в консоле ловил параметры, так почему нужно использовать iframe? Может я что-то неправильно делаю?
function send(){
var image = document.createElement('img');
image.src="http://127.0.0.1:8080?vasya=2";
document.body.appenChild(image);
}