为什么会出现跨域

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(1)

如何解决跨域问题

Demo1(添加允许跨域请求的响应头)

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(2)

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(3)

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(4)

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(5)

现在用添加响应头的方式

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(6)

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(7)

Demo2(jsonp的callback方式)

这里演示的是jquery的ajax,后台采用的是webservice接口形式

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(8)

注意此时的dataType为jsonp格式,看看后台的接收

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(9)

我们返回的其实就是一个函数的调用文本,这里注意,callback的名称,由于前台没有指定callback函数,所以这里自动生成了,如果想自定义回调函数名称如下操作,添加一行请求参数

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(10)

这样后台的回调函数名就变成了mytest

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(11)

浏览器发出的请求格式和响应数据如下,其实就是返回函数的调用,而需要返回的数据则以函数参数值的形式填入

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(12)

此时控制台就能够获取到“hello world”

ajax跨域的解决方案(前端解决ajax跨域有哪些方法)(13)