我如何设置HTTP头“;访问控制允许起源”;用于来自thttpd web服务器的HTTP响应

How can I set the HTTP header "Access-Control-Allow-Origin" for HTTP responses from a thttpd web server

本文关键字:HTTP 响应 用于 thttpd web 起源 服务器 设置 何设置 许起源 访问控制      更新时间:2023-09-26

我有一个thttpd(http://acme.com/software/thttpd/)我有图像(svg)和JSON文件的web服务器。

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

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。。。

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

请注意,我还尝试在我的HTTP请求和Javascript代码中使用"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 });

任何帮助都将不胜感激!

感谢

在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