В Safari не работает XML-ответ - PullRequest
0 голосов
/ 10 июня 2011

МЫ пытались так, пожалуйста, проверьте и дайте предложение.

function GetXmlHttpObject()
{ 
    var objXMLHttp=null;
    if (window.XMLHttpRequest)
    {
        objXMLHttp=new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");

    }
    return objXMLHttp;
} 


function show(url,did)
{
    divId=did;
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    if(url.indexOf("?")!=-1)
    url=url+"&sid="+Math.random();
    else
    url=url+"?sid="+Math.random();

    xmlHttp.open("GET",url,true);
    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.send(null);

} 

function stateChanged()
{ 

    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
    { 
        document.getElementById(divId).style.display='block';
        document.getElementById(divId).innerHTML=xmlHttp.responseText;
    }
}

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Попробуйте заменить логический оператор || на &&:

function stateChanged()
{ 
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
    { 
        document.getElementById(divId).style.display='block';
        document.getElementById(divId).innerHTML=xmlHttp.responseText;
    }
}
0 голосов
/ 10 июня 2011

Не похоже, что вы здесь используете jQuery.Ajax по-разному обрабатывается в разных браузерах, но jQuery предоставляет абстракции, поэтому вам не нужно об этом беспокоиться.Посмотрите на документы API, либо низкоуровневый метод .ajax(), либо некоторые из еще более простых сокращенных методов, например .get() и .post()

http://api.jquery.com/jQuery.get/
http://api.jquery.com/jQuery.ajax/
http://api.jquery.com/jQuery.post/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...