使用 Jquery 1.4.2 进行跨域 Ajax 调用



实际上,我不知道这是否是跨域的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
});

相关内容

  • 没有找到相关文章

最新更新