我有一个Ionic 4项目,需要向服务器进行post和get调用。服务器是一个Spring Java服务器,只允许来自http://localhost:4200的调用,并在http://localhost:8080上运行。我只有服务器的DNS地址。问题在于当我将应用部署到移动设备时,它会启动一个本地主机服务器,在这个服务器上,WebView强制执行跨域资源共享(CORS)。
我遇到了以下错误: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
为了进行Rest Call,我使用了Angular中的
我希望能够以某种方式使用Angular中的
谢谢你抽出时间来帮助我。
以下是我的CLI和项目版本:
我遇到了以下错误: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
为了进行Rest Call,我使用了Angular中的
HttpClient
。我已经阅读过Ionic-Native/HTTP可以处理CORS问题,但我需要重写所有的调用,而且我无法在浏览器上测试,这需要相当长的时间来开发。是否可以通过代理来解决这个问题,告诉服务器我的来源是"http://localhost:4200",或者在Spring上允许来自特定端口的任何IP地址?我还看到一个名为ionic-native-http-connection-backend的库,它在可能时使用ionic的本机http,但它无法正常工作。我希望能够以某种方式使用Angular中的
HttpClient
并解决这个问题,或者如果必须对后端进行更改,那么这些更改应该是最小化的。谢谢你抽出时间来帮助我。
以下是我的CLI和项目版本:
ionic (Ionic CLI) : 4.2.1 (C:\Users\John\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : @ionic/angular 4.0.0-beta.12
@angular-devkit/build-angular : 0.7.5
@angular-devkit/schematics : 0.7.5
@angular/cli : 6.1.5
@ionic/angular-toolkit : 1.0.0
Cordova:
cordova (Cordova CLI) : 8.1.1 (cordova-lib@8.1.0)
Cordova Platforms : android 7.1.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.0, (and 7 other plugins)
系统:
NodeJS : v8.11.4 (C:\Program Files\nodejs\node.exe)
npm : 5.6.0
OS : Windows 8.1