【问题标题】:nginx add header to specific URL on Zend Frameworknginx 将标头添加到 Zend Framework 上的特定 URL
【发布时间】:2014-05-12 22:43:28
【问题描述】:

我有一个 zend 1.x 应用程序,并希望将标头添加到特定 JSON 请求 [不是所有 JSON 请求]。例如,任何请求 /data.json 的东西都应该设置 Access-Control-Allow-Origin

我尝试了此配置,但它不起作用[我尝试添加通用标头并且它正在工作,因此似乎安装了所有必需的模块]。如何将标头添加到 /data.json 请求中?

location /data.json  {
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control "public";
    try_files $uri $uri/ /index.php$is_args$args;               
}   

# this part actually serves the zend files
## Parse all .php file in the directory       
location ~ .(php|phtml)$ {      
    fastcgi_pass   generic-fpm;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
}

到目前为止,我在生成 JSON 响应的 php 脚本中添加了 header 指令:

<?php     
   header('Access-Control-Allow-Origin: *');
?>

【问题讨论】:

  • 位置 ~ ^/data.json { add_header Access-Control-Allow-Origin *; add_header 缓存控制“公共”; try_files $uri $uri/ /index.php$is_args$args; }

标签: json zend-framework cross-domain


【解决方案1】:

你确实忘记了表情中的~!

location ~ ^/data.json { 
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control "public";
    try_files $uri $uri/ /index.php$is_args$args;
}

【讨论】:

  • 感谢提示,实际上我错过了 = 符号 [完全匹配] ~ 用于正则表达式匹配。但是仍然不能 100% 工作,因为在 try_files 条件之后,添加的标头似乎会丢失。
  • 很抱歉我帮不上忙。在我的应用程序中,我总是使用插件(PHP 代码)来添加自定义标头,因为某些资源可能使用其他标头,甚至另一个客户端角色可能会获得不同的标头!所以,你的 header() 方法会起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2014-08-21
相关资源
最近更新 更多