Chrome CORB только что начал блокировать вызовы Snoowrap Reddit API.Как мне обойти это? - PullRequest
1 голос
/ 24 марта 2019

Я работал над расширением Chrome, которое вызывает Reddit API с помощью Snoowrap, установленного Node. До сегодняшнего дня он работал отлично. Все мои запросы теперь возвращают пустые ответы, и в консоли появляется следующее предупреждение:

Блокировка перекрестного происхождения (CORB) заблокировала ответ перекрестного происхождения https://oauth.reddit.com/r/askreddit/hot?raw_json=1&count=9999&t= с Приложение MIME типа / JSON. Увидеть https://www.chromestatus.com/feature/5629709824032768 для более подробности.

Я тестировал с простым запросом, и это не удалось. Это в скрипте содержимого, используя Browserify:

var snoowrap = require('snoowrap');
var CONFIG = require('./config.json');
var hiddenUpvoteElements;

var r = new snoowrap({
    userAgent: CONFIG.userAgent,
    clientId: CONFIG.clientId,
    clientSecret: CONFIG.clientSecret,
    refreshToken: CONFIG.refreshToken
});

r.getSubreddit("askreddit").getHot().then(console.log);

Соответствующий manifest.json материал (пробовал много разных вещей, чтобы попытаться заставить его работать):

"manifest_version": 2,
"permissions": [
    "tabs",
    "https://www.reddit.com/*",
    "https://old.reddit.com/*",
    "activeTab",
    "https://oauth.reddit.com/*"
],
"background": {
    "scripts": ["background.js"]
},
"content_scripts": [
    {
        "matches": ["*://*.reddit.com/*"],
        "js": ["bundle.js"],
        "run_at": "document_end"
    }
],
"content_security_policy": "script-src 'self' https://oauth.reddit.com; object-src 'self'"

Я нахожу это действительно странным, потому что до сегодняшнего дня оно работало нормально. Мой компьютер вчера перезагружался, и, возможно, он применил обновление к ОС или Chrome или что-то. Я тестировал Python и Praw с той же информацией, которую использовал для инициализации экземпляра snoowrap, и он работает с этим.

Буду признателен за любой совет, что я могу сделать, чтобы обойти это. Заранее спасибо.

1 Ответ

0 голосов
/ 28 марта 2019

По указанию wOxxOm я решил проблему, переместив запросы в фоновый скрипт и используя сообщения для передачи результатов обратно в мой контентный скрипт.

...