如何将CORS头添加到静态连接服务器? [英] How can I add CORS-Headers to a static connect server?

查看:159
本文介绍了如何将CORS头添加到静态连接服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写一个小的演示web服务器提供静态html,css和javascript。
服务器看起来像

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 被破坏后,这个问题有点麻烦我。

Had a bit of trouble figuring this one out since express has spoiled me.

查看启用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\n');

 });

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头添加到静态连接服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆