我创建了一个静态网站,我希望使用此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
}
});
我该如何解决?
答案 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