- 论坛徽章:
- 0
|
用json和script标签,解决ajax的跨域问题
ajax的XMLHttpRequest因为js的安全问题是不能跨域的
但是<script></script>可以用src="http://otherSite.com/a.js"可以跨域
所以动态写入一个<script></script>就OK了
scr指向一个其它站点的文件,比如:a.php?id=15
让a.php echo() 一个json的字符串
json 参考:http://www.json.org
下面为动态加载script标签的js
- <script>
- var element = document.createElement("script");
- function createScript(compId,dataId){
- element.src = "http://othersite.com/json.php?comp_id=" + compId + "&data_id=" + dataId + "";
- element.type = "text/javascript";
- element.language = "javascript";
- }
- function writeContent(){
- alert(productJSON.product[0].name);
- }
- window.onload = function(){
- createScript(1,2);
- document.getElementsByTagName("head")[0].appendChild(element);
- }
- if(document.all){
- element.onreadystatechange = function(){//IE用
- var state = element.readyState;
- if (state == "loaded" || state == "interactive" || state == "complete") {
- writeContent();
- }
- };
- } else {
- element.onload = function() {//FF用
- writeContent();
- };
- }
- </script>
复制代码
下面是json.php echo出来的内容
var productJSON = {'product': [
{'name' : '物件名1'},
{'building' : '建物名1'},
{'address' : '5'}
]
}; |
|