Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запрос к серверу через тег IMG (https://javascript.ru/forum/misc/46382-zapros-k-serveru-cherez-teg-img.html)

Hapson 08.04.2014 01:09

Запрос к серверу через тег IMG
 
Собственно вот, обработчик ошибок яндекс почты:
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

Цитата:

Сообщение от Hapson
но массив 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

Цитата:

Сообщение от Hapson (Сообщение 306778)
Это что, у них php код в .txt выполняется? Или тут что-то другое?

А фиг их знает, может и код выполняется, а может и сервер как-нить по хитрому быть настроен, чтобы при обращении к этому файлику что-нибудь делать.

Hapson 08.04.2014 18:18

Цитата:

Сообщение от jsnb
А фиг их знает, может и код выполняется, а может и сервер как-нить по хитрому быть настроен, чтобы при обращении к этому файлику что-нибудь делать.

Ну да, наверно так настроено. Прямое обращение ниче интересного не дает :)
https://mail.yandex.ru/monitoring.txt


Часовой пояс GMT +3, время: 17:32.