我在远程服务器上有一个xml。现在我想用ajax调用它。 IE正在提供所需的结果。但Firefox和Chrome不能。请给我解决方案。我谷歌但没有找到解决方案。
$.support.cors = true;
$.ajax({
type: "GET",
url: "http://www.w3schools.com/xml/note.xml",
dataType: "xml",
success: function(node)
{
alert(node);
},
error: function()
{
alert("Network Error");
}
});
答案 0 :(得分:3)
是的你肯定会遇到ajax跨域问题。现在有两种方法可以使用。
这是一个在这里分享的一个小问题。我不会在你的代码上实现它。但是如果你检查这些东西,我相信你可以解决这个问题。
编辑一个简单的谷歌搜索结束here。 其中一些人更清楚地解释了解决方案。你可以利用它。
答案 1 :(得分:0)
它真的很难使用ajax跨域,请查看googles。 使用ajax在你的serwer中调用.php并使用curl post。
我的英语很糟糕
创建对ajax.php的调用GET 并在ajax.php中写道。
echo GETrequest("http://www.w3schools.com/");
这是我的2个卷曲功能,只需更改结束行,$ this->要返回的数据
private function GETrequest($link){
$zapytanie = curl_init(); // adres strony
curl_setopt($zapytanie, CURLOPT_URL, $link);
curl_setopt($zapytanie, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4"); // useragent
curl_setopt($zapytanie, CURLOPT_HTTPHEADER, array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language: pl,en-us;q=0.7,en;q=0.3", "Connection: keep-alive","Cache-Control: max-age=0","text/html; charset=UTF-8"));
curl_setopt($zapytanie, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($zapytanie, CURLOPT_COOKIEFILE, dirname(__file__) . '/cookies/'.$this->adres_ip.'/cookies.txt'); // ciacha
curl_setopt($zapytanie, CURLOPT_COOKIEJAR, dirname(__file__) . '/cookies/'.$this->adres_ip.'/cookies.txt'); // ciacha
$this->data = curl_exec($zapytanie);
$this->getinfo = curl_getinfo($zapytanie);
curl_close($zapytanie);
}
private function POSTrequest($link,$post){
$zapytanie = curl_init(); // adres strony
curl_setopt($zapytanie, CURLOPT_URL, $link);
curl_setopt($zapytanie, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4) Gecko/20091030 Gentoo Firefox/3.5.4"); // useragent
curl_setopt($zapytanie, CURLOPT_HTTPHEADER, array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language: pl,en-us;q=0.7,en;q=0.3","Referer: https://www.linkedin.com/uas/login-submit", "Connection: keep-alive","Content-Type: application/x-www-form-urlencoded"));
curl_setopt($zapytanie, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($zapytanie, CURLOPT_COOKIEFILE, dirname(__file__) . '/cookies/'.$this->adres_ip.'/cookies.txt'); // ciacha
curl_setopt($zapytanie, CURLOPT_COOKIEJAR, dirname(__file__) . '/cookies/'.$this->adres_ip.'/cookies.txt'); // ciacha
curl_setopt($zapytanie, CURLOPT_POST, 1);
curl_setopt($zapytanie, CURLOPT_POSTFIELDS, $post);
$this->data = curl_exec($zapytanie);
$this->getinfo = curl_getinfo($zapytanie);
curl_close($zapytanie);
}
答案 2 :(得分:0)
纯jquery无法做到这一点。您需要执行以下操作之一:
使用代理服务器(您可以通过代理运行请求,使用PHP)。
如果您拥有w3schools.com
,则可以启用自己的网站通过JSON访问XML(通过启用CORS)。