跨域请求两种方法 jsonp和cors的实现

2311 0

浏览器的同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。
从一个域上加载的脚本不允许访问另外一个域的文档属性。

防止CSRF跨站攻击

一、CORS(跨域资源共享)

需要在服务端上将Access-Control-Allow-Origin设置为自己请求域名或者全部全部域名(*)

php设置方法:只需PHP添加响应头信息

header(“Access-Control-Allow-Origin: *”);

其他参考:https://www.cnblogs.com/cityspace/p/6858969.html

二、通过jsonp实现

请参考:https://www.jb51.net/article/150580.htm

jsonp获电视台节目案例

// 伪造ajax 基于script
  $.ajax({
   url:'http://www.jxntv.cn/data/jmd-jxtv2.html',
   type: 'get',
   dataType: 'jsonp', // 伪造ajax 基于script
   jsonp: 'callbacks',
   jsonpCallback: 'list', // 拼函数名,如果不写就随机发一个函数名,对面解析好发回来
 
   success: function (data) {
    var html=""; //自己拼接
 
    // 循环取出数据 index 索引计次,weekday 每一天 必须要2个参数
    $.each(data.data,function (index, weekday) {
     //取到每天的数据
     html+='

'+weekday.week+'

'; $.each(weekday.list,function (i,show) { html+=''+show.name+'
' }) }); $('body').append(html) } })

我在不同时候使用不同的方法,

方法一,只有两个域都在控制下或者被请求的域名已经设置了允许全部域请求使用,一般公司两个域名之间的请求我会用这个,设置后,就用Ajax请求就是;

方法二,调试别人网站,发现jsonp接口,来用获取数据

发表回复