假设情况动态程序在域名为http://a.xx.com的目录下而静态页面在域名为http://b.xx.com的目录下,现在要在静态页面中调用动态程序
即要考虑js的跨域。
解决方法:
1. 将静态页面中需要处理的html代码拿出放到动态程序所在的目录中,然后使用iframe包含到静态页面,此处可将js写到动态目录中。(即js和拿出的html代码在 http://a.xx.com中)
2. 通过jquery中的jQuery.getJSON(url,[data],[callback])方法,此方法会将传递的数据用get的方式发送到服务器端,并将结果返回给客户端,例如:
(静态页面服务器http://b.xx.com):jQuery.getJSON(
"http://a.xx.com?param1=val1¶m2=val2……&callback=?",
function(msg)
{
alert(msg.msg);
}
);
(动态php服务器http://a.xx.com):$callback = isset($_GET['callback']) ? $_GET['callback'] : '';
$info = array("status"=>false,"msg"="hello world");
echo $callback."(".json_encode($info).")";
此方法所有的数据都是通过get方式发送的,对于数据的安全性与传递数据的长度有一定的限制。
对于js跨域传递数据本人还不知道如何用post方式传送如果
有朋友知道,可以教授一下。