thinkPHP 遇到跨域问题的解决

域=协议名+主机名+端口号,只有这三部分相同才能称为是相同的域访问

为什么浏览器要限制跨域请求,主要的原因就是安全性问题,如:CSRF攻击。

但是,既然不安全,为什么我们又要跨域请求呢?原因是有时为了服务器便于管理和减轻服务器压力,会把不同的资源放在不同的服务器上,这样就存在很多子域,比如:A子域的html资源要去访问B子域的图片资源,本地一个html使用ajax请求访问服务器上的某个接口,都会出现跨域请求,前者是主机名不同,后者是协议名不同(本地文件协议是file,网络协议为http或https)

index.php:入口文件(入口文件是更改到根目录下的)

";
echo '我在这里:D:\phpstudy\PHPTutorial\WWW\Index.php'*/

// 应用目录
define('APP_PATH', __DIR__.'/application/');

//设置跨域请求
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
header('Access-Control-Allow-Methods: GET, POST, PUT');

// 加载框架引导文件
require './thinkphp/start.php';

?>

.htaccess 文件(入口文件没有更改到根目录下的,请忽略!


  Options +FollowSymlinks -Multiviews
  RewriteEngine On
  RewriteBase /
  #RewriteCond %{SERVER_PORT} !^443$
  #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f

  #RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
  RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]

 

你可能感兴趣的:(php,php)