用Jquery 1.4.2进行crossdomain ajax调用

时间:2011-05-21 01:18:26

标签: jquery ajax http https cross-domain

实际上,我不知道这是否是一个跨域的ajax问题。 这是我的问题: 我有一个在ssl协议下运行的网站,例如,网站网址是: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调用,它可以工作。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以解决跨域问题...只需在(例如)php中创建一个获取Feed的页面....

<强> 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
});