jquery-一行代码解决跨域问题 | 不支持post请求
问题
平时我们在开发时遇到的跨域问题,后台暂不给解决时,我们一般可以用vue代理(node)、nginx反向代理等方式来解决
但是当项目要上线的时候,这些问题将又会出现
就比如,自制的一个简单项目,只需要对请求数据并进行可视化,不需要进行后台的交互,仍旧会出现跨域问题
(就是盗用别人的api接口数据,自己用o(╥﹏╥)o)
jquery的geoJSON请求,将轻松解决这个get请求的跨域问题
$.getJSON()
jQuery.getJSON(url, [data], [callback])
$.getJSON("https://gwpre.sina.cn/interface/news/ncp/data.d.json?mod=city&citycode=CN44130000000000&_=1668326261870&callback=?", function(json){ console.log(json) });
超级nice!!!
ajax本身是不可以跨域的
通过产生一个script标签来实现跨域,因为script标签的src属性是没有跨域的限制的
其实设置了dataType: 'jsonp'后,$.ajax方法就和ajax XmlHttpRequest没什么关系了,取而代之的则是JSONP协议。
而$.geoJSON
方法就是对上面方法的一个简单封装
JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问。