0

我有一个 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、...

我拥有修改 Web 服务器上的配置文件所需的所有权限(我有 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 });

任何帮助将非常感激 !

谢谢

4

1 回答 1

0

在 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

于 2020-08-07T19:20:27.390 回答