Ajax跨域访问解决方案

No 'Access-Control-Allow-Origin' header is present on the requested resource.' Ajax跨域访问解决方案

什么是跨域?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源

例如:

1.资源跳转: A链接、重定向、表单提交

2.资源嵌入,如:link,script等

3.脚本请求: js发起的ajax请求、dom和js对象的跨域操作等

跨域访问违反了同源策略(浏览器最核心也是最基本的安全功能),浏览器的ajax只能访问跟它的HTML页面同源(相同域名或IP)的资源。

解决方案:

1.服务器端方案

很显然,这种方式对非网站拥有人员来说是不能做到的,而且此种方式很容易受到CSRF攻击(跨站请求伪造)

2.客户端方案

通过jsonp跨域,jsonp是专门用来解决跨域访问而诞生的,缺点是:只能实现get一种请求。

例子:

$.ajax({
    url: 'http://www.xxx.com/index.php?callback=showJson',
    type: 'get',
    dataType: 'jsonp',  // 请求方式为jsonp
    data: {}
});

使用jsonp后,后端还需要做相应的修改,

echo  $_GET['callback'].'('.json_encode($res).')';

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值