ajax请求跨域问题分析与解决
一. ajax请求跨域分析:
跨域问题来源于JavaScript的同源策略,即只有 协议+域名+端口号 (如存在)相同,则允许相互访问,若是协议,域名,端口号有一个不同就会发生跨域问题。
1.浏览器限制
2.跨域
3.XHR(XMLHttpRequest)请求
二.解决思路
1.解决浏览器限制问题:通过设置浏览器的一个请求头参数。缺点:不能每个访问的浏览器客户端都进行限制
2.使用jsonp的方式,解决请求为xhr的类型
3.解决跨域问题,修改调用方或者修改被调用方的代码。
三.实用解决方案
1.jsonp的解决方法
1.1.jsonp的callback方式:
动态创建一个script脚本,来解决跨域
1.2.ajax请求
此请求会自动追加一个callback参数,一般带callback参数的请求都会认为jsonp请求,会返回jsonp的数据,否则则是普通的请求。
jsop的返回值
其中,callback值作为javascript的方法名,而jsop值作为参数返回
1.3.jsonp的缺点
1.要修改后台代码
2.只支持get请求
3.发送的不是xhr请求