索鸟网

  1. 首页
  2. 跨域ajax请求,服务器会收到请求吗?

跨域ajax请求,服务器会收到请求吗?


同源策略 (Same origin policy)

是一种约定,它是浏览器最核心也最基本的安全功能,Web是构建在同源策略基础之上的,浏览器是针对同源策略的一种实现。

之前一直认为,它是通过对发出的请求进行检查是否同源,然后决定是否对该请求加以限制来实现。这次经过验证发现正好相反:

在www.test.com下的页面中向www.domian.com下的a.php发送ajax请求:

    $.ajax({                       
        type:"get",
        url:"http://www.domain.com/a.php",
        async:true,
        success:function(res){
            console.log(res)
        },
        error:function(){
            console.log("error")
        }
    });
    

控制台信息显示跨域不被允许:

 XMLHttpRequest cannot load http://www.domain.com/a.php. No "Access-Control-Allow-Origin" header is present on the requested resource. Origin "http://www.test.com" is therefore not allowed access.
 

查看服务器access.log记录,找到了这条请求的记录:

所以同源策略应该是浏览器在接收加载资源之前对其来源进行了检查,然后限制加载。

javascript

来源地址:https://segmentfault.com/a/1190000011361841 版权归作者所有!

相关教程

  • 解决ajax跨域请求问题

    XMLHttpRequest cannot load http://www.imooc.com/data/check_f.php. No "Access-Control-Allow-Origin" header is present on the requested resource. Origin "http://localhost:8080" is therefor
  • 解决ajax跨域请求问题

    自己做网站的时候,经常遇到跨域问题,下面是平时多次实践总结出的解决方法,大家有什么更好的思路,可以相互交流下~ XMLHttpRequest cannot load http://www.imooc.com/data/check_f.php. No "Access-Control-Allow-Origin" header is present on the reques
  • nodejs跨域请求

    js中,想实现跨域请求,在各种尝试之后,最终选择了用nodejs发送跨域请求,还是可以的,下面记录一下过程。 我要访问的 url 是域名+端口形式的域名。 1.首先安装nodejs,我这里安装了全局的,安装过程自己百度一下,网上很多 2.这个demo的目录是E盘的根目录下创建了 server.js E盘的根目录下创建一个zx目录,zx目录下面
  • ajax跨域请求之CORS的使用

    上一次记录了使用JSONP跨域,但是JSONP只适合get请求并不能完全解决问题;今天来说一下通过CORS解决跨域,get和post请求方式都适合。 CORS(Cross-Origin Resource Sharing)既跨域资源共享,它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。 实现CORS通信的关键是服务器。
  • Jsonp跨域请求

    怎么处理跨域问题呢?相信在看了这篇文章,您就理解了什么是跨域,怎么处理跨域问题了。 一、同源策略 要理解跨域,先要了解一下“同源策略”。所谓同源是指,域名,协议,端口相同。所谓“同源策略“,简单的说就是基于安全考虑,当前域不能访问其他域的东西。 在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的。例如我们在自己的网站通过ajax去获取豆瓣
  • ajax跨域请求之JSONP的使用

    之前在工作中遇到了跨域访问的问题,此次记录使用json的过程。注意:jsonp只适合类型为get的请求;只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。 $.ajax({ type:"get", //请求方式,此处给post仍会以get方式提交 dataType:"jso
  • 通过nginx实现跨域请求

    实现过程 把下面的配置保存成一个文件,例如:nginx_cors,引入到Nginx的代理配置中去。 if ($request_method = "OPTIONS") { add_header "Access-Control-Allow-Origin" "*"; add_header "Access-Control-Allow-
  • 关于跨域GET、POST请求的小结

    重点:跨域POST大量数据; JQuery:$.ajax/$.getJSON支持jsonp格式的跨域,但是只支持GET方式,暂不支持POST; CORS:w3c关于跨域的新方案,res.setHeader("Access-Control-Allow-Origin","*"),兼容IE9+; so,跨域POST是个值得研究的问题啊!万能的JQuery无法跨域POST;鉴于