我有一个用引导程序设计的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 浏览器禁止的,因为同源策略。