1

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

在 Joomla 中,我有一个task控制器接收客户端的请求,在 Joomla 中执行一些身份验证逻辑,然后用数据进行响应。如果我提出一个简单的GET请求,它会做出适当的响应。但是,我不知道如何让 Joomla 在收到OPTIONS请求时给出适当的“OK”响应。

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

(如果有什么不同,这最终将是一个同源请求。在我们的开发过程中它只是跨域的。但是,我相信 AngularOPTIONS无论如何都会发出请求。)

4

1 回答 1

2

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

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

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

来源: http: //origin.com

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

访问控制允许来源: http: //origin.com

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

访问控制允许来源:*

欲了解更多信息:http ://en.wikipedia.org/wiki/Cross-origin_resource_sharing

于 2013-07-18T22:04:13.453 回答