Доступ к vuforia vws с реагированием на запрещенный заголовок - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь вызвать веб-сервис vuforia с помощьюа-

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.log(toDigest);
axios.get(url, config,{ crossdomain: true })
.then(json => console.log(json))
}

console.log (toDigest):

GET
d41d8cd98f00b204e9800998ecf8427e
application/json
Mon, 29 Oct 2018 12:45:26 GMT
https://cors-anywhere.herokuapp.com/https://vws.vuforia.com/targets

1 Ответ

0 голосов
/ 27 ноября 2018

Измените ваш код конфигурации с

const config = {
    headers: {
    'Date': `${date}`,
    'Authorization': `VWS ${accessKey}:${signature}`
}

до

const config = {
    headers: {
    'Authorization': `VWS ${accessKey}:${signature}`
}

XMLHttpRequest не может устанавливать заголовок даты, он устанавливается браузером автоматически. Причина в том, что, манипулируя этими заголовками, вы можете обмануть сервер, чтобы он принял второй запрос через то же соединение, который не прошел бы обычные проверки безопасности - это было бы уязвимостью безопасности в браузере. Вот список заголовков HTTP , которые вы не можете установить самостоятельно.

Дайте мне знать, если вы все еще получаете ошибку.

...