比如php中利用cUrl。
2、放置跨域文件.
3、用JSONP。
虽然不能跨域进行通信,但是可以引入跨域的js文件。
先定义一个函数
var returnData
function getData(obj) {
returnData = JSON.parse(obj)
}
当我们要向www.baidu.com/s.php请求数据的时候,我们可以引入某个包含返回信息的js文件。
比如: <script type="text/javascript" src="www.baidu.com/s.php?id=12321" />
js的内容是getData({json:'格式'})返回时输出 格式是 text/javascript (比如php用header('Content-type:text/javascript')来输出)
那么文件加载好后解析js时就会执行这个函数,返回得到的数据就被赋值给了returnData变量
以这样的方式插入到页面中:
var script = document.createElement('script')
script.src='www.baidu.com/s.php?id=12321' //传入参数id=12321
body.appendChild(script)
1.什么是跨域
经常会在页面上使用ajax请求访问其他服务器的数据,此时,客户端会出现跨域问题.
跨域问题是由于javascript语言安全限制中的同源策略造成的.
简单来说,同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合.
2.解决方案:服务器端:
protected void Page_Load(object sender, EventArgs e)
{
string result = "callback({\"name\":\"zhangsan\",\"date\":\"2012-12-03\"})"
Response.Clear()
Response.Write(result)
Response.End()
}
客户端:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
var result = null
window.onload = function () {
var script = document.createElement("script")
script.type = "text/javascript"
script.src = "http://192.168.0.101/ExampleBusinessApplication.Web/web2.aspx"
var head = document.getElementsByTagName("head")[0]
head.insertBefore(script, head.firstChild)
}
function callback(data) {
result = data
}
function b_click() {
alert(result.name)
}
</script>
</head>
<body>
<input type="button" value="click me!" onclick="b_click()" />
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)