01.png

1.如何实现跨域?


1.jsonp

  1. $.ajax({
  2. type:"method",
  3. url:"",
  4. dataType:"jsonp",
  5. jsonp:"callback",
  6. success:function(data){
  7. },
  8. error:function(xhr){
  9. console.log(xhr.status)
  10. }
  11. beforeSend:function(){
  12. }
  13. })

2.服务器的解决方案

01.png

3.js中script标签不受同源策略的影响也可以实现跨域

  1. var script = document.createElement("script");
  2. script.src = "http://api.douban.com/v2/movie/subject/1764796?&callback=handleResponse";
  3. document.body.prepend(script);
  4. function handleResponse(res) {
  5. // 对response数据进行操作代码
  6. console.log(res)
  7. }

2. 同源策略:不允许跨域调用其他页面的对象


当协议,子域名,主域名,端口号,任意一个不同时,就算作不同的域。

  • 不同域之间请求资源就算做跨域。
  • Javascript出于安全性的考虑,不允许跨域调用其他页面的对象。简单理解就是因为Javascript同源策略的限制,a.com域名下的js无法操作b.com域名下的对象。

01.png