как разрешить js-скрипту узла google app Engine вызывать кросс-домен? - PullRequest
0 голосов
/ 08 января 2019

Я новичок в GAE / NODEJS. Существует множество советов, чтобы звонки, размещенные в GAE, назывались междоменными, но у меня возникают проблемы с тем, чтобы приложение js моего узла вызывало API других доменов. Что мне нужно сделать, чтобы GAE разрешил междоменные звонки? Мой код:

app.get('/listProducts', (req, res) => {
    request.get('https://[cross domain]/api/2.0/products', function (error, response, body) {
  console.log('error:', error); // Print the error if one occurred
  console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
  console.log('body:', body); // Print the HTML for the Google homepage.
}).auth(null, null, true, '[key goes here]');

Ответы [ 2 ]

0 голосов
/ 10 января 2019

делал новичок - я должен был вернуть код ответа, например response.status (200) .send ("ok"). End ();

0 голосов
/ 08 января 2019

Вы можете разрешить настройку файла app.yaml или настройки в заголовке http. Здесь doc (ищите CORS Support )

Следуйте примеру:

У вас может быть игровое приложение mygame.appspot.com , которое обращается к ресурсам хостинг myassets.appspot.com . Однако, если mygame пытается сделать JavaScript XMLHttpRequest для myassets, это не удастся если обработчик для myassets не возвращает Access-Control-Allow-Origin : заголовок ответа, содержащий значение http://mygame.appspot.com.

Вот как вы должны заставить обработчик статического файла возвращать требуемое значение заголовка ответа:

handlers:
- url: /images
  static_dir: static/images
  http_headers:
    Access-Control-Allow-Origin: http://mygame.appspot.com
  # ...

Примечание: если вы хотите разрешить всем доступ к вашим ресурсам, вы можете использовать подстановочный знак '*' вместо http://mygame.appspot.com.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...