我可以在 Heroku 中托管我的 API,并从 GitHub 页面访问它吗?
Can I host my API in Heroku, and access it from GitHub Pages?
由于浏览器为避免 XSS 攻击而采取的安全预防措施,我似乎碰壁了很多。
基本上我在 Heroku 上暴露了一些 api,即:myapi.herokuapp.com/get/stories
但是当我试图从桌面上的普通 Client.html
文件发出此类请求时,比如通过 XMLHttpRequest
或 WebSocket
,我得到 NS_ERROR_DOM_BAD_URI
或其变体。
我是不是在做一些无意义的事情?
不,这不是无稽之谈。如果您为此类请求配置了 API 和客户端,您应该能够很好地访问它。作为参考,这里是我的一些(工作)设置,我的 API 托管在 Heroku 上并可从 localhost
访问
API(后端)
server.connection {
port: process.env.PORT
routes:
cors:
origin: ['*']
credentials: true
additionalHeaders: ['X-Requested-With']
}
Angular(前端)
angular.module('app.core').config ($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider, $cookiesProvider) ->
$locationProvider.html5Mode true
## Configure CORS
$httpProvider.defaults.useXDomain = true
$httpProvider.defaults.withCredentials = true
delete $httpProvider.defaults.headers.common["X-Requested-With"]
$httpProvider.defaults.headers.common["Accept"] = "application/json"
$httpProvider.defaults.headers.common["Content-Type"] = "application/json"
# $httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"
由于浏览器为避免 XSS 攻击而采取的安全预防措施,我似乎碰壁了很多。
基本上我在 Heroku 上暴露了一些 api,即:myapi.herokuapp.com/get/stories
但是当我试图从桌面上的普通 Client.html
文件发出此类请求时,比如通过 XMLHttpRequest
或 WebSocket
,我得到 NS_ERROR_DOM_BAD_URI
或其变体。
我是不是在做一些无意义的事情?
不,这不是无稽之谈。如果您为此类请求配置了 API 和客户端,您应该能够很好地访问它。作为参考,这里是我的一些(工作)设置,我的 API 托管在 Heroku 上并可从 localhost
访问API(后端)
server.connection {
port: process.env.PORT
routes:
cors:
origin: ['*']
credentials: true
additionalHeaders: ['X-Requested-With']
}
Angular(前端)
angular.module('app.core').config ($locationProvider, $stateProvider, $urlRouterProvider, $httpProvider, $cookiesProvider) ->
$locationProvider.html5Mode true
## Configure CORS
$httpProvider.defaults.useXDomain = true
$httpProvider.defaults.withCredentials = true
delete $httpProvider.defaults.headers.common["X-Requested-With"]
$httpProvider.defaults.headers.common["Accept"] = "application/json"
$httpProvider.defaults.headers.common["Content-Type"] = "application/json"
# $httpProvider.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest"