繁体   English   中英

如何使用Joomla作为服务器配置跨源资源共享(CORS)?

[英]HowTo configure Cross Origin Resource Sharing (CORS) with Joomla as server?

我正在编写一个嵌入在Joomla上运行的网站内的Web应用程序。 在客户端,我正在使用AngularJS。 Angular的$resource对象遵循跨源资源共享的模式-即它在发出任何GET请求之前先发出一个OPTIONS请求。

在Joomla中,我的一个控制器中有一个task ,该task接收客户端的请求,在Joomla中执行一些身份验证逻辑,然后使用数据进行响应。 如果我提出一个简单的GET请求,则此响应会适当。 但是,当Joomla收到OPTIONS请求时,我无法弄清楚如何使其给出适当的“确定”响应。

是否有特定于Joomla的方法来实现这一目标? 如果没有,如何使用纯PHP对OPTIONS做出响应? 我的搜索空白。

(如果有什么不同,最终将是一个同源请求。这只是我们开发过程中的跨源请求。但是,我相信Angular会提出OPTIONS请求。)

这是如何使CORS工作的一个示例:

假设您在此页面上origin.com/test.php,并且此页面上的JavaScript向target.com发出请求。

要启动跨域请求,浏览器会发送带有Origin HTTP标头的请求。 此标头的值是为页面提供服务的域(origin.com)。 因此,在这种情况下将是:

来源: http//origin.com

如果target.com支持CORS,则需要在响应中使用Access-Control-Allow-Origin HTTP标头进行回复。 标头的值指示允许哪些原始站点。

Access-Control-Allow-Origin: http//origin.com

要允许来自所有域的访问,target.com需要发送HTTP标头:

访问控制允许来源:*

有关更多信息: http : //en.wikipedia.org/wiki/Cross-origin_resource_sharing

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM