以下是同一主域名不同子域名的情况,网上查了很多方法比如什么8种常用方法,发现都不是很好实践,大伙帮看看怎么能比较简单点,就是page1.html 通过ajax访问到echo.php数据,谢谢
http://a.w1.com/page1.html:
<p id="p1"></p>
<script>
new Core.AjaxRequest({
url: "http://w1.com/api/echo.php",
target:"p1"
});
</script>
http://w1.com/api/echo.php:
<?php
echo "ajax请求数据";
==================================
其实我是希望用js原生的方法解决这个问题,解决了http://a.w1.com访问http://w1.com跨域问题,谢谢各位
目前已经找到解决办法是:
http://a.w1.com/page1.html
<script>
function createScript(sUrl){
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = sUrl;
document.getElementsByTagName("head")[0].appendChild(oScript);
}
createScript("http://w1.com/api/echo.php?callback=dosomething");
function dosomething(jsondata){
document.getElementById("p1").innerHTML = jsondata;
}
</script>
http://w1.com/api/echo.php:
<?php
$callback = $_GET['callback'];//得到回调函数名
$data = array('a','b','c');//要返回的数据
echo $callback.'('.json_encode($data).')';//输出
?>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
跨子域的话,设置
document.domain = w1.com试试?简单的没有的,方法很多,看你如何权衡利弊
我觉得比较好用的跨域方式为HTML5的postMessage,这里有一个封装的方法,你可以看看
iframe跨域通信的通用解决方案-第二弹!(终极解决方案)
JQ 的 ajax 用jsonp方式请求 不是够简单了吗?
php代码加一句这个再echo就好了
header('Access-Control-Allow-Origin: *');jQuery下Ajax请求的参数加上fn=?,类型改为jsonp即可:
服务器代码要修改为:
底层实现就不贴了。。。