两个简单的跨域方法
Ajax不能跨域。例如,如果你是www.baidu.com,你不能从www.163.com请求文件。但是你可以问www.baidu.com/1.json和ent.baidu.com/1.json.这是因为安全原因。对于任何后台语言和服务器程序,来自其他服务器的所有XHR请求都不会得到响应。
首先,使用jsonp
JSONP是带有Padding的JSON的缩写。这是一个非官方的协议,其起源无法检验。它允许在服务器端集成Script标签并返回到客户端,跨域访问可以通过javascript回调的形式实现(这只是JSONP的一种简单实现形式)。-来源百度
JSONP类似于JSON Padding (Padding被理解为调用函数时的填充)。
绿色部分是JSON,外部好玩();是函数的调用,是填充的补充部分。
jsonp的原理很简单,就是定义写在HTML源文件中,调用放在脚本标签引用的文件中。因为脚本标签可以跨文件使用,实现了跨域,引用的文件可以有php、js、txt等多种格式。
这里有一个例子:
jsonp.txt的内容如下:
//调用函数fun({ ' result ' :[{ ' name ' : ' Xiaoming ',' age' : 12,' sex' : '男声' },{'name' :' Xiaohong ',' age' : 13,运行结果:
因为使用不方便,我们可以把它包装成一个实用的轮子:
JQuery已经有了一个可以直接使用的封装API:它的名字叫ajax()
您可以查看jQuery手册,参考以下内容
第二,用PHP窃取数据
几乎所有的后台语言都可以实现这个功能,下面是PHP的一个例子:
?php头(' Content-type : text/html;charset=utf-8 ');$a=file_get_contents('网址');print _ r($ a);其中,header是设置返回浏览器的头文件的字符集和文件类型
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。