如何将 CORS-Headers 添加到静态连接服务器? [英] How can I add CORS-Headers to a static connect server?
问题描述
我正在编写一个提供静态 html、css 和 javascript 的小型演示 Web 服务器.服务器看起来像
I am writing a little demo web server delivering static html,css and javascript. The server looks like
(function () {
"use strict";
var http = require("http");
var connect = require('connect');
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('home'));
var server = http.createServer(app);
server.listen(9999, function () {
console.log('server is listening');
});
})();
我的客户端 javascript 对不同的服务器进行 ajax 调用.如何添加
My client side javascript makes ajax calls to a different server. How can I add
Access-Control-Allow-Origin: http://example.com
到我的服务器响应,以便客户端javascript可以进行ajax调用?
to my server response, so that the client side javascript can do the ajax call?
推荐答案
由于 express 把我宠坏了.
看看启用cors.基本上,您需要做的是将 Access-Control-Allow-Origin
添加到要启用 cors 的域中.response.setHeaders 非常适合这项任务.
Take a look at enable cors. Basically what you need to be doing is add Access-Control-Allow-Origin
to the domain you want to enable cors on. response.setHeaders is perfect for this task.
另外需要注意的是 connect 没有办法处理路由.如果您的应用程序需要不同的路由,那么您可能必须为每个路由编写逻辑,并将 res 标头添加到要启用 cors 的那些标头.你可以使用 req.url
.
Another thing to note is that connect has no way to handle routes. If your app needs to have different routes then you will probably have to write logic for each of them and add res headers to the ones on which you want to enable cors. You can use req.url
for it.
var http = require("http");
var connect = require('connect');
var app = connect()
.use(connect.logger('dev'))
.use(connect.static('home'))
.use(function(req, res){
res.setHeader("Access-Control-Allow-Origin", "http://example.com");
res.end('hello world
');
});
var server = http.createServer(app);
server.listen(9999, function () {
console.log('server is listening');
});
这是我在 chrome 开发工具中得到的响应
This is the response I got in chrome dev tools
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Date: Sat, 15 Jun 2013 16:01:59 GMT
Connection: keep-alive
Transfer-Encoding: chunked
这篇关于如何将 CORS-Headers 添加到静态连接服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!