如何使用Ajax发送标头

时间:2017-04-12 14:35:37

标签: javascript jquery node.js ajax

我创建了一个静态网站,我希望使用此Ajax函数向http {1}}发送带有http标头的请求。但是当我发送它时,我无法通过REST API获取任何令牌字段。

NodeJs Express REST API

当我发邮件时,我可以轻松搞定。这是NodeJS中间件

 $.ajax({
                beforeSend: function (request) {
                    request.setRequestHeader("token", 'vjhvjhvjhvjhbjhsbvkjsbvkjsbkvjbskjvb');            
                },
                dataType: "json",
                url: "http://localhost:3000/feeds",
                success: function (data) {
                   //do something
                }
            });

我该如何解决?

4 个答案:

答案 0 :(得分:2)

AJAX标题可以设置为全局,如下所示。

$.ajaxSetup({
  headers: {
   'token':'token_vlaue',
   'another_field': 'another_field_value'
  }
});

答案 1 :(得分:0)

你试过吗

$.ajax({
    headers: {
        'Accept': 'application/json;',
        'Content-Type': 'application/x-www-form-urlencoded',
        'custom_key': 'custom_value'
    },
    dataType: "json",
    ...
)};

答案 2 :(得分:0)

你在错误的代码块中寻找令牌。您需要先正确设置CORS,然后您的令牌将在以后以正确的路径显示。

以下是用于CORS的正确模式的示例。

//CORS middleware
var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,PATCH,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'X-Requested-With,Content-Type,token');
    res.header('Access-Control-Allow-Credentials', true);

    next();
}

//...
app.configure(function() {
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.methodOverride());
    app.use(allowCrossDomain);
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});

app.get('feeds', function(req, res, next) {

    console.log(req.headers.token);  
    next();
});

答案 3 :(得分:-1)

您可以尝试这样发送:

$.ajax({
    url: "http://localhost:3000/feeds",
    headers: { 'token': 'vjhvjhvjhvjhbjhsbvkjsbvkjsbkvjbskjvb' }
});

以下是一个可以帮助您的更详细的答案:answer