Я пытаюсь вызвать веб-сервис vuforia с помощью response + axios, читая документы вуфории и следуя этим шагам, когда я звоню, я получаю сообщение об ошибке в журнале консоли Chrome:
xhr.js:121 Refused to set unsafe header "Date"
Но если я правильно понимаю, я должен указать в запросе заголовок «Дата». Как я могу это решить, вот мой код:
class App extends Component {
componentDidMount() {
var md5 = require('md5');
var base64 = require('base-64');
var hmacsha1 = require('hmacsha1');
var contentType = "application/json";
var hexDigest = "d41d8cd98f00b204e9800998ecf8427e";
var accessKey = "xxxxxxxxxxxx";
var secretKey = "xxxxxxxxxxx";
var date = new Date().toUTCString();
var url = `${'https://cors-anywhere.herokuapp.com/'}https://vws.vuforia.com/targets`;
var dateValue = date;
var requestPath = url;
var newLine = '\n';
var toDigest = `GET${newLine}${hexDigest}${newLine}${contentType}${newLine}${dateValue}${newLine}${requestPath}`;
var shaHashed = hmacsha1(secretKey, toDigest);
var signature = base64.encode(shaHashed);
const config = {
headers: {
'Date': `${date}`,
'Authorization': `VWS ${accessKey}:${signature}`
}
}
console.info(toDigest);
axios.get(url, config,{ crossdomain: true })
.then(json => console.info(json))
}
console.info (toDigest):
GET
d41d8cd98f00b204e9800998ecf8427e
application/json
Mon, 29 Oct 2018 12:45:26 GMT
https://cors-anywhere.herokuapp.com/https://vws.vuforia.com/targets





Измените код конфигурации с
const config = {
headers: {
'Date': `${date}`,
'Authorization': `VWS ${accessKey}:${signature}`
}
к
const config = {
headers: {
'Authorization': `VWS ${accessKey}:${signature}`
}
XMLHttpRequest не может устанавливать заголовок Date, он устанавливается автоматически браузером. Причина в том, что, манипулируя этими заголовками, вы можете обманом заставить сервер принять второй запрос через то же соединение, которое не будет проходить обычные проверки безопасности - это будет уязвимостью безопасности в браузере. Вот список заголовков HTTP, который вы не можете установить самостоятельно.
Сообщите мне, если вы все еще получаете сообщение об ошибке.
пробовали ли вы тот же вызов xhr от почтальона, а затем проверьте, какой ответ вы там получаете.
Ошибка небезопасного заголовка исчезла, но сейчас я получаю плохой запрос, хотя ваш ответ правильный, vuforia специально хочет, чтобы дата в заголовке была в определенном формате, я не знаю, из-за этого ли я получение плохого запроса