Cors 沃森服务公司+;跨来源资源共享

Cors 沃森服务公司+;跨来源资源共享,cors,ibm-cloud,ibm-watson,watson-dialog,Cors,Ibm Cloud,Ibm Watson,Watson Dialog,我正在使用Watson的Dialog服务开发一个应用程序,其中API是通过客户端javascript访问的,但在尝试访问API时遇到以下问题 XMLHttpRequest cannot load https://gateway.watsonplatform.net/dialog/api. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:80

我正在使用Watson的Dialog服务开发一个应用程序,其中API是通过客户端javascript访问的,但在尝试访问API时遇到以下问题

XMLHttpRequest cannot load https://gateway.watsonplatform.net/dialog/api. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access. The response had HTTP status code 401.
解决方案似乎是跨源资源共享,但我找不到一种方法来为Watson服务启用此功能。有办法做到这一点吗?如果没有,还有别的办法吗?我只能找到资源来为我们自己部署的应用程序启用它

如果我理解正确的话,如果我们的应用程序部署到BlueMix,而不是在本地进行测试,这将不会是一个问题。不过,如果可能的话,我们希望能够在可能的情况下进行本地测试,以提高开发速度


谢谢你的帮助

如果希望在开发测试期间规避面向浏览器的安全性,浏览器通常有一种机制来允许这种功能。例如,在Google Chrome浏览器中,使用标志
--disable web security
启动浏览器将禁用检查来自浏览器端的跨源请求,从而允许浏览器向任何后端服务器发出REST请求。例如:


chrome——禁用web安全

浏览器中将显示一条警告,说明您正在运行此不安全的系统。更多信息:


如果希望在开发测试期间规避面向浏览器的安全性,浏览器通常有一种机制来允许这种功能。例如,在Google Chrome浏览器中,使用标志
--disable web security
启动浏览器将禁用检查来自浏览器端的跨源请求,从而允许浏览器向任何后端服务器发出REST请求。例如:


chrome——禁用web安全

浏览器中将显示一条警告,说明您正在运行此不安全的系统。更多信息:


您可以通过获取服务凭据(VCAP\U服务)并将其添加到应用程序中来进行本地测试。这应该作为环境变量在web服务器上完成

您可以查看此自述:

这将顺利进行,请检查以下内容: com.ibm.watson.developer_cloud.dialog.v1.DialogService

或者你可以使用 例如:

您可以通过获取服务凭据(VCAP\U服务)并将其添加到应用程序中来进行本地测试。这应该作为环境变量在web服务器上完成

您可以查看此自述:

这将顺利进行,请检查以下内容: com.ibm.watson.developer_cloud.dialog.v1.DialogService

或者你可以使用 例如:

您正在调用的API不允许跨源请求,并且您的浏览器安全性阻止您使用它 (了解Mozilla文档中关于CORS的跨源行为)

为了解决这个问题(绝对避免破坏浏览器的安全策略),您可以实现一个作为代理后端的应用程序,它将转发您的请求到请求的API,并添加所有头以支持CORS设置。 这个应用程序可以在Bluemix上运行,可以在您希望的运行时、nodejs、Java或php等上开发,然后您的移动应用程序应该直接调用它而不是API。
此外,它还允许您将大量业务逻辑从客户端移动到代理/后端,使第一个更加轻巧和“灵活”

您正在调用的API不允许跨源请求,并且您的浏览器安全性阻止您使用它 (了解Mozilla文档中关于CORS的跨源行为)

为了解决这个问题(绝对避免破坏浏览器的安全策略),您可以实现一个作为代理后端的应用程序,它将转发您的请求到请求的API,并添加所有头以支持CORS设置。 这个应用程序可以在Bluemix上运行,可以在您希望的运行时、nodejs、Java或php等上开发,然后您的移动应用程序应该直接调用它而不是API。
此外,它还可以让您将大量业务逻辑从客户端移动到代理/后端,使第一个更加轻巧和“灵活”

此链接有用吗@Kolban我看了几次,它似乎只讨论为部署到Watson的应用程序启用它,而不是Watson服务?我看到的Watson服务的唯一配置似乎是使用的计划。这个链接有用吗@Kolban我看了几次,它似乎只讨论为部署到Watson的应用程序启用它,而不是Watson服务?我看到的Watson Services的唯一配置似乎是使用的计划。应用程序/代理提到的正是我在回答中提到的代码。看看它,它将帮助你快速启动你的应用程序。应用程序/代理提到的正是我在回答中提到的代码。查看它,它将帮助您快速启动应用程序。