子域 REST 调用在 FF 中工作,而不是在 IE 中工作



我有一个用引导程序设计的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 打开站点并调用该方法 - 什么都没有。与提琴手一起检查 - IE 甚至不发送请求。

您不能像这样从主域调用子域。这是一个"跨域"请求,请求将中断。它永远不应该在www.mydomain.com工作 - 即使在FF上也是如此。我不知道它是怎么做到的。

无论如何,您的服务器是如何构建的?sub.mydomain.com文件夹是否 mydomain.com/?Such 为:

顶级域名:

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 浏览器禁止的,因为同源策略。

相关内容

  • 没有找到相关文章