ajax请求和浏览器地址栏上输入url都是http请求,为啥前者有跨域问题,后者没有跨域问题呢?
ajax请求和浏览器地址栏上输入url都是http请求,为啥前者有跨域问题,后者没有跨域问题呢?
Ajax可以偷偷摸摸发请求,而不需要用户操作,用户不知情,那么问题就大了,如果你上了一个不安全的网站,这个网站Ajax偷偷发一个请求到你的网银网站(这里跨域了)拿到你的Cookie,把Cookie传到这个不安全的网站自己的服务器,那么你的网银就会被盗。所以浏览器不允许Ajax跨域。
那么为什么我在浏览器上直接输入地址可以访问?很简单,这一定是用户自己主动操作的,而不是某些不安全网站偷偷摸摸干的,浏览器认为这是安全的,所以允许。
显然你对跨域的概念不清。我简单点讲哈,你的ajax文件所在的位置相当于一个域,服务器里的文件相当于一个域,显然你不能从这个域直接拿到另一个域里面的数据,如果可以,你想想多可怕,多不安全! 而你在浏览上输入url,只是让客户端(浏览器)想服务里发送请求,把相关的东西 html js 什么的全加载下来。而这些东西其实都是保存在同一个服务器这个域里面的(后台跟前端文件在一起),所以不存在什么跨域说法了。