0

我有一个使用引导程序设计的 HTML 页面,它调用 REST 服务来更新数据库的信息。这是javascript:

$.support.cors = true;

$.ajaxSetup ({
  // Disable caching of AJAX responses
  cache: false,
  async: false
});

$("#submitemail").click(function() {

$.getJSON('http://sub.mydomain.com/getinfo/'+ 
                 encodeURIComponent($('#emailaddress').val()), 
                 function(resp) {
                    //do something here
                  }); 
});

在FF工作。

使用 IE - 如果我从桌面打开 html 文件并运行...它将调用 sub.mydomain.com 并获取信息。但是,如果我从 www.mydomain.com 打开站点并调用该方法 - 什么都没有。用 Fiddler 检查 - IE 甚至不发送请求。

4

1 回答 1

1

您不能像这样从主域调用子域。这是一个“跨域”请求,请求会中断。www.mydomain.com即使在 FF 上,它也不应该从 - 开始工作。我不知道它是怎么做的。

无论如何,您的服务器是如何构建的?是sub.mydomain.commydomain.com/里面的文件夹吗?比如:

顶级域名:

http_public/mydomain.com/

子域

http_public/mydomain.com/sub_domains/sub.mydomain.com/

?

如果文件结构是这样的,那么你可以允许访问目录并使用

url: '/sub_domains/sub.mydomain.com/getinfo'+whatever

否则,您需要使用JSONP

JSONP 或“带填充的 JSON”是对基本 JSON 数据格式的补充。它提供了一种从不同域中的服务器请求数据的方法,由于同源策略,典型的 Web 浏览器禁止这样做。

于 2012-04-19T18:47:18.460 回答