Как я могу использовать JavaScript для отправки одностороннего сообщения на php? Я хотел бы получить информацию о браузере из javascript и просто отправить ее php в фоновом режиме. Я знаю, что могу получить часть этого от php, но я бы предпочел использовать javascript. Есть ли способ сделать это без фреймворка, как jquery?

2
blank bank 15 Июн 2010 в 19:37

4 ответа

Лучший ответ

Да, вы можете сделать это примерно так:

function xmlhttpPost(strURL) {
    var xmlHttpReq = false;
    var self = this;
    // Mozilla/Safari

    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
       // IE
       self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.onreadystatechange = function() {

        if (self.xmlHttpReq.readyState == 4) {
            alert('Here goes something');
            self.xmlHttpReq.send('browser info here');
        }
    }
} 

Это отправит «информацию браузера здесь» как POST на странице php, которую вы передаете функции как url. Я не проверял это хотя

0
realshadow 15 Июн 2010 в 15:43
// fix for older IE versions
// see http://blogs.msdn.com/b/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
if( typeof window.XMLHttpRequest === 'undefined' &&
    typeof window.ActiveXObject === 'function') {
    window.XMLHttpRequest = function() {
        try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch(e) {}
        try { return new ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch(e) {}
        return new ActiveXObject('Microsoft.XMLHTTP');
    };
}

function postData(url, data, errhandler) {
    var req = new XMLHttpRequest;
    req.onreadystatechange = function() {
        if(this.readyState === 4 && this.status !== 200 && errhandler)
            errhandler(this);
    };
    try {
        req.open('POST', url, true); // async post request
        req.send(data);
    }
    catch(e) {
        if(errhandler)
            errhandler(req);
    }
}
0
Christoph 15 Июн 2010 в 16:59

Вам нужно сделать AJAX-вызов на страницу PHP, желательно используя POST. Любые данные, которые вы хотите отправить, должны быть отправлены вместе с запросом.

Я рекомендую использовать такую среду, как jQuery, но если вы настаиваете на использовании необработанного JavaScript, вы хотите исследовать XMLHttpRequest.

0
Justin Ethier 15 Июн 2010 в 15:41

Вы должны будете отправить запрос AJAX в скрипт PHP. Да, вы можете сделать это без использования фреймворка, но я бы не советовал.

0
Josh K 15 Июн 2010 в 15:40