AJAX отлично работает в Firefox, но сбои в Mozilla Prism 0,9 - PullRequest
0 голосов
/ 28 мая 2010

У меня есть следующая функция ajax:

function ajax(value, url, urlVarname, displayContainers_id){    
    if(value == ''){
        document.getElementById(displayContainers_id).innerHTML='';
    }
    /* THIS IS LINE 12*/ xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange=function()
    {
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
            document.getElementById(displayContainers_id).innerHTML=xmlhttp.responseText;
        }

    }
    xmlhttp.open('GET',url + '?varName=' + urlVarname + '&value=' + value, true);
    /* THIS IS LINE 25 */ xmlhttp.send();
}

 onmousedown="ajax(document.getElementById('searchParamater').value, 'http://192.168.0.7/controllers/search_controller.php', document.getElementById('searchBy').value, 'ajaxBucket')">

Все это прекрасно работает в Firefox, но когда я использую призму 0.9, она дает сбой, и я получаю следующую ошибку в консоли ошибок:


Warning: assignment to undeclared variable xmlhttp Source File: http://192.168.0.7/javascript/main.js Line: 12

Error: uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://192.168.0.7/javascript/main.js :: ajax :: line 25" data: no]

Ответы [ 3 ]

1 голос
/ 28 мая 2010

var xmlhttp и передайте "" в .send (). Вот и все.

0 голосов
/ 28 мая 2010

Как говорит @Pointy, объявите переменную xmlhttp.

Также для строки 25 соответствующая строка из jQuery (в качестве примера):

xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null );

Если вы только когда-либо ПОЛУЧАЕТЕ, xmlhttp.send(null) будет в порядке.

0 голосов
/ 28 мая 2010
var xmlhttp = new XMLHttpRequest();

Я думаю, здесь.

Что касается другой (более серьезной) проблемы, вот страница, которую я нашел: https://developer.mozilla.org/en/nsIXMLHttpRequest

Возможно, тот факт, что внутри Prism вы действительно находитесь в другой среде, чем на странице браузера, имеет значение.

...