1.跨域问题:简单来说就是A域名下的程序想从B域名下的文件里面获取信息(这句话是我上网看到的)
2.一般请求(本地测试):
请求页
![Ajax访问PHP页面出现的跨域问题 Ajax访问PHP页面出现的跨域问题](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TG1OdWFYUmliRzluTG1OdmJTOWliRzluTHpZeU1UazNNeTh5TURFME1URXZNRE13T1RVME5EZzBNemt5TWpNNExuQnVadz09LmpwZw%3D%3D.jpg?w=700&webp=1)
响应页
![Ajax访问PHP页面出现的跨域问题 Ajax访问PHP页面出现的跨域问题](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TG1OdWFYUmliRzluTG1OdmJTOWliRzluTHpZeU1UazNNeTh5TURFME1URXZNRE13T1RVMU5UVTJOVGcxTnpBd0xuQnVadz09LmpwZw%3D%3D.jpg?w=700&webp=1)
这样做是没问题的。
但我如果将Ajax请求的url修改成http://127.0.0.1/TestJQ/Test1/ajax.php,就会出问题了
![Ajax访问PHP页面出现的跨域问题 Ajax访问PHP页面出现的跨域问题](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TG1OdWFYUmliRzluTG1OdmJTOWliRzluTHpZeU1UazNNeTh5TURFME1URXZNRE14TXpBeU16WTJOREkyTmpjeExuQnVadz09LmpwZw%3D%3D.jpg?w=700&webp=1)
控制台会报出XMLHttpRequest cannot load http://127.0.0.1/TestJQ/Test1/ajax.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.的错误提示了,这就是跨域问题导致的
针对这样情况,如果我们将响应页加上一个头信息,就可以了
![Ajax访问PHP页面出现的跨域问题 Ajax访问PHP页面出现的跨域问题](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhBdmFXMWhaMlZ6TG1OdWFYUmliRzluTG1OdmJTOWliRzluTHpZeU1UazNNeTh5TURFME1URXZNRE14TXpBMk1qRTJNamM1TnpBekxuQnVadz09LmpwZw%3D%3D.jpg?w=700&webp=1)
当然了,header("Access-Control-Allow-Origin: *");中的“*”表示对所有网站的请求都允许
我们也可以使用指定的网址,表示只有这些网站的请求才被允许
事实上呢,为什么URL改写成http://127.0.0.1/TestJQ/Test1/ajax.php就会造成跨域,我其实还是搞不清楚的,毕竟请求页和响应页都是在我电脑的Apache服务器目录下的,还麻烦有大神路过指点,谢谢~~