Angular 使用Laravel作为REST API的移动设备上的Ionic 4应用程序的本地CORS问题
我已经尝试过在万维网上发布的任何解决方案Angular 使用Laravel作为REST API的移动设备上的Ionic 4应用程序的本地CORS问题,angular,laravel,api,ionic-framework,cors,Angular,Laravel,Api,Ionic Framework,Cors,我已经尝试过在万维网上发布的任何解决方案 简单复制,创建一个新的Laravel应用程序,并配置一个API路由来接收get/post请求 创建一个Ionic应用程序并向API发送get/post请求 在浏览器上试用,根据需要设置CORS,之后浏览器将正常工作 在移动设备(ios、android)上试用,即使在CORS配置之后,它也不会工作 我已经用api get/post路由构建了一个全新的Laravel应用程序,还有一个全新的ionic应用程序,它使用angular的HttpClient,还尝试
import { HTTP } from '@ionic-native/http/ngx';
constructor(private http: HTTP) {}
...
this.http.get('http://ionic.io', {}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // data received by server
console.log(data.headers);
})
.catch(error => {
console.log(error.status);
console.log(error.error); // error message as string
console.log(error.headers);
});
我收到了“消息”:“Http失败响应(未知url):-1未定义”,在浏览器中使用的是Angular的HTTPClient,它工作得很好
这也适用于浏览器:
login(email: String, password: String) {
return this.http.post('https://127.0.0.1:8000/api/login',
{email: email, password: password}
).pipe(
tap(api_token => {
this.storage.setItem('api_token', api_token)
.then(
() => {
console.log('Token Stored');
},
error => console.error('Error storing item', error)
);
this.api_token = api_token;
this.isLoggedIn = true;
return api_token;
}),
);
}
在IOS和Android上,我得到:
消息“:“0的Http失败响应未知错误”
我试着使用带电容器和不带电容器的Ionic,我试着用Ionic run——devapp,还有Ionic cordova run ios,还有XCODE等等
我用Ionic移动应用程序实现的任何LaravelAPI之间的通信都不能与Httprequests一起工作
我遵循barryvdh包的Cors安装步骤,Cors.php如下所示:
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
还执行了$middleware步骤以使其全局化,并使用终端命令php artisan vendor:publish--provider=“Barryvdh\Cors\ServiceProvider”
浏览器在没有配置CORS的情况下无法工作,但当我安装软件包时,浏览器运行良好。本机应用程序没有任何变化,在安装CORS打包后它们仍然无法工作
全部错误:
"headers": {
[ng] "normalizedNames": {},
[ng] "lazyUpdate": null,
[ng] "headers": {}
[ng] },
[ng] "status": 0,
[ng] "statusText": "Unknown Error",
[ng] "url": "http://127.0.0.1:8000/api/login",
[ng] "ok": false,
[ng] "name": "HttpErrorResponse",
[ng] "message": "Http failure response for http://127.0.0.1:8000/api/login: 0 Unknown Error",
[ng] "error": {
[ng] "isTrusted": true
[ng] }
[ng] }
[console.log]: "Ionic Native: deviceready event fired after 374 ms"
[ng] [console.log]: {
[ng] "headers": {
[ng] "normalizedNames": {},
[ng] "lazyUpdate": null,
[ng] "headers": {}
[ng] },
[ng] "status": -1,
[ng] "statusText": "Unknown Error",
[ng] "url": null,
[ng] "ok": false,
[ng] "name": "HttpErrorResponse",
[ng] "message": "Http failure response for (unknown url): -1 undefined",
[ng] "error": "Verbindung zum Server konnte nicht hergestellt werden."
[ng] }
我知道我已经发布了很多信息,但可能还不够。希望你能理解我的问题,也许有人在Laravel API和Ionic移动应用程序中也遇到了这个问题。解决了这个问题
我没有托管API,只是使用php artisan Service和localhost:8000地址运行它
我的移动设备无法连接到本地mac地址,否则mac上的模拟器就可以连接到该地址
因此,移动设备响应:“消息”:“Http失败响应(未知url):-1
不知道未知错误0是如何发生的,我现在将使用主机地址进行尝试
无论如何谢谢你。解决了这个问题
我没有托管API,只是使用php artisan Service和localhost:8000地址运行它
我的移动设备无法连接到本地mac地址,否则mac上的模拟器就可以连接到该地址
因此,移动设备响应:“消息”:“Http失败响应(未知url):-1
不知道未知错误0是如何发生的,我现在将使用主机地址进行尝试
无论如何,谢谢。检查这里。检查可能重复。Hi可能重复。你有什么解决办法或消息吗?我也有同样的问题。此外,当我尝试向远程服务器发送请求时,也会出现此错误。Hi。你有什么解决办法或消息吗?我也有同样的问题。此外,当我尝试向远程服务器发送请求时,也会出现此错误。