3中办法可以解决ajax跨域问题
1、用响应头:在服务器上加入响应头:
在页面设置响应头允许ajax跨域访问:既:
2、使用代理:在当前服务器加载一个代理服务器的,代理服务器允许ajax跨域,在有代理服务器发送到主服务器;
3、使用jsonp:
<script src="http://localhost:3000/showAll"></script>src指向你要链接服务器的地址;将服务返回的数据当成js代码执行;这是一种jsonp的原理,相当于用script标签来发送一个像ajax一样的请求(只有请求地址);既请求http://localhost:3000下面的showAll方法;
script,link img等标签是可以跨域的;
jquery封装的方法
用jsonp的方法,在ajax中加入下面两个参数;
1、$.ajax中dataType与jsonpCallback两个参数;将script方法封装成ajax形式;当时只要加入了dataType就不是ajax里,是jsonp的方法;
2、原理:首先在使用$.AJAX时生成一个script标签,然后定义个方法来接收放回的数据来实现跨域;但是在这里这个ajax已经不是ajax了,实现的机制实际是sjonp了;敏感数据不要跨域;
3、josnp不支持post方法;
4、$.ajax({ type:"get",url:"http://localhost:3000/showAll",dataType:"jsonp",jsonpCallback:"cd"(定义的方法既服务器返回的方法名,如果服务器返回的不是一个方法,可以省略;), })