今天项目里边用到js跨域的问题,废话不说代码如下:
接收请求端:
www.a.com/a.php
echo 'sms_jsout_callback(11)';
发送请求端:
www.b.com/b.php
<script type="text/javascript">
接收请求端:
www.a.com/a.php
echo 'sms_jsout_callback(11)';
发送请求端:
www.b.com/b.php
<script type="text/javascript">
function sms_jsout_callback(smsresult) {
//弹出返回数据
//弹出返回数据
alert(smsresult);
}
function jsoutcall(url) {
//创建节点
//创建节点
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
var jsoutscript = document.getElementById("jsoutscript");
jsoutscript.replaceChild(script, jsoutscript.firstChild);
}
</script>
<input type="button" value="vali!" οnclick="jsoutcall('www.a.com/a.php');" />
<input type="button" value="send!" οnclick="jsoutcall('www.a.com/a.php');" />
<div id="jsoutscript" style="display:none">AA</div>//AA内容不可去掉,否则jsoutscript.firstChild取不到div节点
遇到问题:
这些代码放在本地测试没有问题,放在线上后,报这样的一句错误( Argument 2 of Node.replaceChild is not an object.), 哎呦这我就纳闷了,没办法找原因吧,找了半天发现,本地输出jsoutscript.firstChild 是一个对象,在线上输出确实一个空的,错误肯定出在这里,查找firstChild函数发现,问题出在这句话上 <div id="jsoutscript" style="display:none">AA</div>,在本地测试里边随便写了内容在里边,放在线上把AA这些内容删除了,造成jsoutscript.firstChild获取不到div这个节点,存在即是合理啊,
遇到问题:
这些代码放在本地测试没有问题,放在线上后,报这样的一句错误( Argument 2 of Node.replaceChild is not an object.), 哎呦这我就纳闷了,没办法找原因吧,找了半天发现,本地输出jsoutscript.firstChild 是一个对象,在线上输出确实一个空的,错误肯定出在这里,查找firstChild函数发现,问题出在这句话上 <div id="jsoutscript" style="display:none">AA</div>,在本地测试里边随便写了内容在里边,放在线上把AA这些内容删除了,造成jsoutscript.firstChild获取不到div这个节点,存在即是合理啊,