如题详述:
今天看廖雪峰老师文章,其中的一句话不太理解:
其实这也是我最近项目中不太明白的一个点,我的操作是:本地新建html
,利用jquery
的ajax
通过数据接口向公司服务器请求数据,将数据填充页面,再本地直接点击打开(知道这样不好)。按道理本地页面,和请求远程服务器数据,这应该是明显的跨域啊,可是我却不需要做任何的跨域处理。
这就是我不明白的点,并且我的这种做法,明显和廖雪峰老师说的这句话相违背
注:希望懂我疑惑的朋友回复,静候您的佳音.....
如题详述:
今天看廖雪峰老师文章,其中的一句话不太理解:
其实这也是我最近项目中不太明白的一个点,我的操作是:本地新建html
,利用jquery
的ajax
通过数据接口向公司服务器请求数据,将数据填充页面,再本地直接点击打开(知道这样不好)。按道理本地页面,和请求远程服务器数据,这应该是明显的跨域啊,可是我却不需要做任何的跨域处理。
这就是我不明白的点,并且我的这种做法,明显和廖雪峰老师说的这句话相违背
注:希望懂我疑惑的朋友回复,静候您的佳音.....
廖雪峰老师说的“默认情况下,JavaScript在发送ajax请求时,url的域名必须和当前页面完全一致。”这个意思是默认情况下是发送请求的域(源域)和请求的域(目的域)是同源的,也就是相同的,不需要跨域。
你描述的操作是,在本地创建html文件,并用ajax发送请求,请求某个域的资源,没有发生跨域,可以这样解释:
如果是用node前端服务器发出请求的话,源域是:localhost,而直接点击html运行时请求的源域为:null。如果请求成功了没被拒绝,说明请求的目的域是开放了权限,也就是在服务端加上了”Access-Control-Allow-Origin: *“,这个表示任何域都可以请求。
但是,如果服务端没加”Access-Control-Allow-Origin: *“的话,请求会被拒绝的。
比如我创建了html中ajax请求我的一个资源,我没有设置“Access-Control-Allow-Origin: *“,结果浏览器会阻止:
Failed to load http://tp-api.tcs-y.com/account.php/login/login: The 'Access-Control-Allow-Origin' header has a value 'http://account.tcs-y.com' that is not equal to the supplied origin. Origin 'null' is therefore not allowed access.
可以参考我的博客:跨域控制
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
估计是服务器配置了
"Access-Control-Allow-Origin":"*"