浏览器同源策略

前言

      这两天可被浏览器同源策略这个知识点坑惨了,因为在做SEO优化,想试一下调用百度主动推送的接口。以下是官网的接口以及示例

接口调用地址

http://data.zz.baidu.com/urls?site=www.duyana.top&token=bN9Tyo3t9N*****

1
2
3
4
5
6
7
8
9
post推送示例

POST /urls?site=www.duyana.top&token=bN9Tyo3t9N***** HTTP/1.1
User-Agent: curl/7.12.1
Host: data.zz.baidu.com
Content-Type: text/plain
Content-Length: 83
http://www.example.com/1.html
http://www.example.com/2.html

历程

      之前了解了一点web,一开始看到这个接口就想写一个本地的web界面来调用,鼓捣了两个晚上,一直以为是JQuery的post构造参数的问题。结果遇到各种报错,后面才了解到jsonp,试了一下GET,也不行,说明这个接口百度那边没有回调对回调函数进行处理。CORS也不支持。

同源策略

      打开已经起灰的《白帽子讲web安全》,浏览器安全的第一节就是同源策略。

浏览器的同源策略,限制了来自不同源的“document”或角本,对当前“document”或角本进行修改。

服务端可以设置HTTP头是是否允许跨域,这个访问方案的基础就是信任“JavaScript无法控制HTTP头”

结论

      要想浏览器js调用这个接口只能通过代理,用服务端具有网络访问功能的后台语言(ASP.NET,JAVA,PHP,Python等)来调用了,网站中还给出了curl推送,php推送,ruby推送的方法。之后再试一下。

念念不忘,必有回响。