|
情况是这样的:
我们的网站需要跨域访问,我查了跨域的资料,大概也了解了浏览器在发送跨域请求之前,会先发送一个Options方法过来,服务器返回可以访问的域,如果浏览器没收到被允许访问,真正的请求就不会被执行发送。所以网页就一直卡在Options请求这个地方。
然后我查了CI在跨域方面的配置,是在config.php里面有个csrf_protection的配置,默认是FALSE的。因为服务器没有禁止跨域,但是同样的也没有对网页发来的options请求进行处理,所以浏览器没收到需要的回复就无法访问。于是我将其设置为TRUE,并且在csrf_exclude_uris中加入了我需要的域名。但是仍然不行。config中那段代码修改如下:
$config['csrf_protection'] = TRUE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array('web.xxx.ddd.com');
之后我又尝试在routes.php中加入关于options方法的路由:
$route['item/([0-9]{1,19})']['options'] = 'BaseController/options';
仍然没有效果。
各位大神,请求帮助!!!Hex~~~~ |
|