2015-12-20 2 views
1

Я построил простой translate service с Node-Red и Watson. Служба работает нормально, когда вызывается непосредственно из браузера, но у меня есть ошибка (CORS), когда звоните в службу через http из моего Angular app.Позвоните в службу поддержки Bluemix из-за пределов приложения

Bluemix Разрешить CORS?

Заранее благодарен.

ответ

1

добавить эти строки кода в ваших bluemix-settings.js и repush приложение

// The following property can be used to configure cross-origin resource sharing 
    // in the HTTP nodes. 
    // See https://github.com/troygoode/node-cors#configuration-options for 
    // details on its contents. The following is a basic permissive set of options: 
    httpNodeCors: { 
     origin: "*", 
    methods: "GET,PUT,POST,DELETE" 
    }, 

Добавьте этот код после того, как "functionGlobalContext: {},"

+0

Большое спасибо Crescenzo. Это именно то, что мне нужно. – GCoe

2

Вообще говоря, Bluemix поддерживает приложения, состоящие из множества независимых служб, развернутых для разных имен хостов. Для каждого приложения (которое может быть API-интерфейса службы), которое вы нажимаете на Bluemix, имя, которое вы предоставляете, будет добавлено к .mybluemix.net. Если ваше приложение соответствует наилучшим методам архитектуры микросервисов, у вас, вероятно, будет два или более подкомпонентов, которые живут на разных именах хостов. Теперь, если у вас есть интерфейс, который должен собирать информацию из этих других приложений Bluemix (ваше приложение AngularJS), по умолчанию доступ к другим подобластям будет запрещен.

Решение воспользоваться стандартными HTTP заголовков, которые доступны для управления кросс-происхождения совместного использования ресурсов (CORS) на услуги Bluemix, которые вы хотите предоставить клиентам JavaScript:

  • Access- Control-Allow-Origin
  • Access-Control-Allow-методы
  • Access-Control-Allow-Headers

Взгляните на следующее сообщение в блоге: Cross-origin resource sharing for Bluemix APIs.

+0

Спасибо you.I Я попробую. – GCoe

Смежные вопросы