2017-10-04 94 views
0

我有一个角度通用应用程序设置。我使用localhost在服务器端执行POST请求来预渲染我的应用程序,这工作正常。角度通用https问题

工作网址的一个例子是http://localhost:8000/api/get-info

我现在已经把应用程序投入外部网址(apache服务器)上。我也在使用ssl。

现在,当我尝试在服务器端执行一个POST请求来预渲染我的应用程序时,我得到状态为:0,url:null(我假设这意味着连接被拒绝) 。

示例非工作网址将为https://mywebsite.com/api/get-info

真正困扰我的是,当应用程序加载到客户端时,所有HTTPS请求都开始工作。所以问题是我无法让快递服务器发送POST请求到我的外部网址。

我已经在服务器端测试了一个不同的网站(twitter)的帖子请求,而且这似乎也很好。所以我不完全确定我出错的地方。

我已经把CORS设置为'*'。

+0

你的API在哪里运行?与ssr引擎相同的Express.js服务器? – Moema

+0

正在使用自己生成的ssl密钥或者您购买了它? –

+0

这不是一个有效的响应,请参阅此链接https://stackoverflow.com/questions/19858251/what-does-http-status-code-0-mean – FussinHussin

回答

1

尝试使用

http://localhost:8000/api/get-info

生产

为好。由于您的Angular应用程序与您的API运行在同一台服务器上,因此使用localhost应该可以正常工作。如果您位于外部网址,则无关紧要。

我做同样的我翻译的东西(它的一个GET但是这不应该的问题):

if (this.isServer) { 
    translateLoader.setUrl('http://localhost:4000/assets/localization/'); 
} else { 
    translateLoader.setUrl('assets/localization/'); 
} 

它可以在本地和生产(包括服务器和客户端)。

+0

欢呼,我知道它使用该方法工作。关键还在于让服务器通过HTTP监听不同的端口。因此,服务器在端口3000上侦听HTTP,在端口8000上侦听HTTP。服务器端请求http:// localhost:3000/api/get-info,客户端请求https://my-website.com/api/获取信息。 –

+0

完美!这实际上就是我的意思,但我忘了你的HTTPS – Moema