Ajax跨域问题、简述Ajax原理及请求过程

一、什么是跨域

了解跨域之前先了解同源策略。

同源策略:即浏览器为保障用户的安全,浏览器为了保证用户信息的安全,防止恶意的网站窃取数据,禁止不同域之间的JS进行交互。对于浏览器而言只要域名、协议、端口其中一个不同就会引发同源策略,从而限制他们之间如下的交互行为:

1、Cookie、LocalStorage 和 IndexDB 无法读取;

2、 DOM 无法获得;

3、 AJAX 请求不能发送。

只有协议、域名、端口都相同才是同域,否则就是跨域。

http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)
http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)
http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)
http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)
http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

二、如何解决跨域问题?

参考博客:https://blog.csdn.net/Joyhen/article/details/21631833

https://blog.csdn.net/Joyhen/article/details/21631833

(只分析常用的解决方法)

(一)Ajax跨域可以选择:

1、JSONP

原文博客:https://blog.csdn.net/u011897301/article/details/52679486

JSONP由两部分组成,回调函数和数据。JSONP是被包含在函数调用中的JSON,如:callback({"name":"Judy"});

回调函数一般请求中指定,而数据就是传入回调函数中的JSON数据。

它的基本思想是,网页通过添加一个

你可能感兴趣的:(前端网络&性能优化)