实际上,我不知道这是否是跨域的ajax问题。这是我的问题:我有一个在SSL协议下运行的网站,例如,网站的URL地址是:https://172.11.8.1:10443/index.php,现在我想从同一服务器中的另一个http进程获取一些xml数据,例如:http://172.11.8.1:8080/test.xml。
我的假设是,我可以在 https://172.11.8.1:10443/index.php 的HTML页面中添加一个js文件,核心ajax调用如下所示:
$.ajax({
type: "GET",
url: "http://172.11.8.1:8080/test.xml",
dataType:"xml",
success: xmlParser,
error: errHandler
});
function xmlParser (xml, textStatus)
{
//
}
function errHandler(xhr, statusText, error)
{
if (xhr.status == "0" && statusText == "error")
{
alert("network down");
}
else if (xhr.status == "200" && statusText == "parseerror")
{
alert("error to get xml info");
}
else
{
alert("error to get xml info");
}
}
当我遵循js文件时,它总是直接进入错误句柄功能。错误信息如下:
errorType Error: a is null message=a is null
statusText parsererror
我相信XML文件格式是有效的,因为我在同一个http域下尝试了相同的ajax调用,它可以工作。
有什么建议吗?
在这种情况下,您可以解决跨域问题...只需在(例如)PHP 中创建一个获取提要的页面。
getXml.php
<?php die(file_get_contents('http://172.11.8.1:8080/test.xml')); ?>
.js
$.ajax({
type: "GET",
url: 'getXml.php',
dataType:"xml",
success: xmlParser,
error: errHandler
});