ajax跨域问题全解

1、发生ajax跨域问题的原因:

(1)浏览器限制;(2)跨域(发出的请求不是本域);(3)XHR(XMLHttpRequest)请求

2、解决方法:

(1)给浏览器传置顶的参数,不让浏览器校验;(2)利用JSONP解决

3、什么是JSONP?

   JSONP是JSON的补充使用方式,不是官方协议,主要利用script标签请求资源可以跨域来解决跨域问题,是一种变通的解决方案。使用JSONP服务器后台是需要做改动的,否则后台还返回json对象前台会报错。

4、JSONP的弊端:

(1)服务器需要改动代码支持;

(2)只支持GET;

(3)发送到不是XHR请求

5、普通的ajax请求与JSONP请求的区别:

(1)普通的ajax请求发出Type是xhr类型,而JSONP发出的Type是script类型,浏览器不会做校验,所以可以解决跨域问题;

(2)返回类型不同,普通的ajax请求返回的是json对象,而JSONP返回的是js脚本(javascript);

(3)url:JSONP请求的URL后面自动添加一长串参数。

6、JSONP实现原理:

  JSONP请求发出时加了callback参数,而后台发现有callback参数就知道这是一个JSONP请求,就会把返回的数据由json变为javascript,而javascript的内容就是一个函数调用。

猜你喜欢

转载自www.cnblogs.com/mengyage/p/9271995.html