我已经通过CI3在LAMP堆栈上设置了RESTful API,并为所有SSL连接(VirtualHost*443);
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token, id, auth_token, cache-control"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
虽然直接通过POSTMan进行的调用按预期工作,但尝试通过AJAX / jQuery调用结果到达端点并出现以下错误;
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://dev.mysite.com/Method/function. (Reason: CORS header ‘Access-Control-Allow-Origin’ does not match ‘(null)’).
(请注意,实际网址遵循方法/功能中的标准CI3原则,并使用其实际名称)。
我还尝试通过始终返回来陪审团评审CI3中的API Controller方法。
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE");
但是,这没有什么不同。
该API被两个移动应用程序和一个Web应用程序击中-移动应用程序未收到任何类似的错误。但是由于它受到多种来源的打击,这就是为什么我允许任何Origin袭击我们的原因。请注意,某些自定义标头也被允许。
有人会知道是什么原因引起的,或者如何修复?