Вход

Просмотр полной версии : Запрос к серверу через тег IMG


Hapson
08.04.2014, 01:09
Собственно вот, обработчик ошибок яндекс почты:

window.onerror = function (m, u, l) {
var e = encodeURIComponent;
if (m && typeof m != "string") {
if (m.type && m.target) {
try {
u = m.target.src
} catch (e) {
u = "exception"
}
m = "Error loading script"
}
}
new Image().src = "/monitoring.txt?loc=" + e(window.location.toString()) + "&errorType=preboot&msg=" + e(m) + "&url=" + e(u) + "&line=" + e(l)
};
try {
if ((self.parent && !(self.parent === self)) && (self.parent.frames.length != 0)) {
self.parent.location = document.location;
}
} catch (e) {}
document.documentElement.id = "js";


Ну и вопрос простой... как это работает?
Как на сервере получить массив GET?
К примеру есть домен http://site.ru
Есть реальный файл in_js_error.php
Если сделать

new Image().src = "http://site.ru/in_js_error.php?message=error"

обращение к файлу происходит, php интерпретатор пробегает по php коду в этом файле, но массив GET пуст!

Что-то я не догоню никак...

danik.js
08.04.2014, 01:19
но массив GET пуст
Да ну быть не может. Посмотри в браузере url куда уходит запрос (вкладка Network).

Сделай в php файле var_dump($_GET).

jsnb
08.04.2014, 03:22
Параметры должны передаваться как при обычном GET запросе. На стороне клиента только проблемы с отключенными изображениями и кешированием на ум приходят.

Даже сейчас проверил:
var i = 0;

function test() {
var newImg = document.createElement('img');
newImg.src = 'http://domain.nnn/test.php?var=tst' + i++;

new Image().src = 'http://domain.nnn/test.php?var=newImg' + i++;
}
Всё отлично доходит.

Hapson
08.04.2014, 18:01
danik.js,
jsnb,
Блин и правда работает...
Сейчас на ноуте работает, вчера за компом сидел - не работало... мистика.
Тогда еще вопрос. У них идет обращение к .txt файлу. Это что, у них php код в .txt выполняется? Или тут что-то другое?

jsnb
08.04.2014, 18:14
Это что, у них php код в .txt выполняется? Или тут что-то другое?
А фиг их знает, может и код выполняется, а может и сервер как-нить по хитрому быть настроен, чтобы при обращении к этому файлику что-нибудь делать.

Hapson
08.04.2014, 18:18
А фиг их знает, может и код выполняется, а может и сервер как-нить по хитрому быть настроен, чтобы при обращении к этому файлику что-нибудь делать.
Ну да, наверно так настроено. Прямое обращение ниче интересного не дает :)
https://mail.yandex.ru/monitoring.txt