我的主域名上有我的JavaScript文件,我想从子域名做一些调用。
我已添加:
url: "http://domain.com/ajax.php"
所以完整的代码是:
$.ajax({
type: "POST",
url: "http://domain.com/ajax.php",
data: {
var1: var1,
var2: var2
},
success: function(data){
}
});
但是在Firebug上,它将请求显示为红色,并且无法响应。 POST参数也应该存在。
我应该在子域上创建一个新的JS文件并添加必要的代码并从那里进行AJAX调用吗?
编辑:使用JSONP代码
我在localhost/ajax.php
上使用此功能,我从sub.localhost
$.ajax({
dataType: 'jsonp',
data: 'id=10',
jsonp: 'jsonp_callback',
url: 'http://localhost/ajax.php',
success: function (data) {
console.log(data);
},
});
并且ajax.php包含:
<?php
echo $_GET["id"];
?>
答案 0 :(得分:4)
您可以使用Access-Control-Allow-Origin
标头启用跨域请求。
答案 1 :(得分:2)
假设你有jQuery 1.5+,你可以使用:
$.ajax({
crossDomain:true,
type: "POST",
url: "http://domain.com/ajax.php",
data: {
var1: var1,
var2: var2
},
success: function(data){
}
});
来自DOCS:
crossDomain(已添加1.5)
Default: false for same-domain requests, true for cross-domain requests
如果要在同一域上强制执行跨域请求(例如JSONP),请将crossDomain的值设置为true。例如,这允许服务器端重定向到另一个域
答案 2 :(得分:0)
对于子域名调用,您有两个选择:
双方使用document.domain。