【问题标题】:How can I set the HTTP header "Access-Control-Allow-Origin" for HTTP responses from a thttpd web server如何为来自 thttpd Web 服务器的 HTTP 响应设置 HTTP 标头“Access-Control-Allow-Origin”
【发布时间】:2016-09-01 19:37:38
【问题描述】:

我有一个 thttpd (http://acme.com/software/thttpd/) 网络服务器,上面有图像 (svg) 和 JSON 文件。

我正在开发一个需要从我的网络服务器检索这些资源的小型网页,但我总是收到以下错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource.

我知道我必须在服务器端设置 Access-Control-Allow-Origin 标头以接受来自任何来源的请求,例如 Apache 服务器上的 .htaccess 文件:

Header set Access-Control-Allow-Origin *

但我真的不知道如何在 thttpd 服务器上执行此操作。到目前为止,我阅读的所有文档和相关主题都是针对 Apache、NGINX、IIS6、...

我拥有修改网络服务器上的配置文件所需的所有权限(我有 root 访问权限)。

请注意,我还尝试在我的 Javascript 代码中的 HTTP 请求中使用“jsonp”作为数据类型,但在尝试检索我的 JSON 文件时出现以下错误。

Uncaught SyntaxError: Unexpected token :

无论如何,我还需要获取 SVG 格式的图像,所以我想避免使用“jsonp”作为数据类型。

这是我的 javascript 代码:

31 $.ajax({
33   url: "http://ip_address/file.json",
34   dataType: "jsonp",                                                                                                                                                                             
35   crossDomain: true,
36   data: {
37     format: "json"
38   },
39   success: function(data) {
40     var json = $.parseJSON(data);
41     alert(data);
42   }
43 });

任何帮助将不胜感激!

谢谢

【问题讨论】:

  • 为您的网络服务器使用除 thttpd 之外的任何东西。
  • 我别无选择,被助教强行用了:/
  • 不幸的是,查看手册页后,我认为您无法在该服务器上设置这些标头。

标签: javascript .htaccess http cross-domain thttpd


【解决方案1】:

在 libhttpd.c 中,您可以更新响应字符串以包含

改变

"%.20s %d %s\015\012Server: %s\015\012Content-Type: %s\015\012Date: %s\015\012Last-Modified: %s\015\012Accept-Ranges: bytes\015\012Connection: close\015\012"

"%.20s %d %s\015\012Server: %s\015\012Content-Type: %s\015\012Date: %s\015\012Last-Modified: %s\015\012Accept-Ranges: bytes\015\012Access-Control-Allow-Origin: *\015\012Connection: close\015\012"

https://github.com/uoaerg/thttpd/blob/master/libhttpd.c#L652

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-02
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    相关资源
    最近更新 更多