我的主域上有我的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"];
?>
发布于 2011-06-12 08:59:30
您可以使用Access-Control-Allow-Origin
头来启用跨域请求。
读这个:跨源资源共享
发布于 2011-06-11 07:59:00
假设您拥有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
如果希望在同一个域中强制crossDomain请求(例如JSONP),请将crossDomain的值设置为true。例如,这允许服务器端重定向到另一个域。
发布于 2011-06-11 08:02:43
对于子域调用,您有两个选项:
https://stackoverflow.com/questions/6316915
复制相似问题