使用Javascript获取HETp请求后清空responseText

时间:2014-02-28 12:58:01

标签: javascript html web-services http get

我尝试从Http Get Request获取文本:

这是一个用于纠正文本的小型网络服务。

http://193.196.7.26/cgi-bin/ColorError-line.pl?arg_childText=Ich%20gehe%20in%20die%20schule.&arg_errors=MOR_GrS;MOR_KS&arg_corrText=Ich%20gehe%20in%20die%20Schule.

当我使用浏览器(即Chrome)调用该服务时,我会看到更正的文本。

现在我在Javascript中尝试这个:

var http2 = new XMLHttpRequest();
var url1 = "http://193.196.7.26/cgi-bin/ColorError-line.pl?arg_childText=Ich%20gehe%20in%20die%20schule.&arg_errors=MOR_GrS;MOR_KS&arg_corrText=Ich%20gehe%20in%20die%20Schule."
http2.open("GET", url, false);
http2.setRequestHeader("Content-type", "text/plain");
http2.send(null);
var temp = http2.responseText;

但是responseText是空的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您必须设置Access-Control-Allow-Origin标题。

.htaccess

<Files "ColorError-line.pl">
    Header set Access-Control-Allow-Origin *
</Files>

打印此标题:

Access-Control-Allow-Origin: *

这将允许来自任何域的跨域访问,而不仅仅是您的。要仅允许您的域,您应该将其设置为

Access-Control-Allow-Origin: http://yourdomain.com

最后没有斜线,但是如果你的域名发生变化,你必须记得改变它。这也适用于.htaccess版本。

更新:此外,您可以按照建议here创建代理脚本来执行此操作。但是,我建议您过滤发送到代理的URL,或者有人可以通过下载大文件来为您的网站创建大量额外的流量。