跨域问题
使用jsonp
①、w3c规定src属性具有开放性原则,所以可以通过src属性直接跨域请求资源
②、script可以去请求另外一个域的js文件
③、服务器不认识的文件一律原样返回,所以我也可以请求txt文件,后端把txt里面的字符串原样返回,但是前端拿到字符串以后会当成js代码来执行
④、过程:
在前端先定义一个全局函数(因为script请求回来的js是在全局环境执行的)
script请求php文件,php返回一段字符串,前端就会把这个字符串当成js代码来执行php返回的字符串就是这个函数的调用,而且实参就是前端所需要的数据,就可以从fn的形参里取到数据了,从而完成跨域请求
注意:后端接口必须是一个jsonp接口,前端必须用script来发,也就是说必须前后端配合完成jsonp跨域,普通接口时不行的
跨域资源共享
cors:cross-origin resource sharing(跨域资源共享)
只需要在后端设置响应头即可,前端还是正常发请求不受任何影响
设置响应头,允许来自所有源的访问:header(‘Access-Control-Allow-Origin:*’);
只允许 http://127.0.0.1:5500 的访问