spring-boot - springboot和ionic如何通信?
问题描述
我正在使用带有 spring boot web 服务的 ionic 4,问题是在我的手机中安装应用程序后,web 服务没有运行?
我在 Controller.java 中使用
@CrossOrigin(origins = "*")
@RestController
public class CarController {
@Autowired
CarRepository carRepository;
@GetMapping(path = "/cars")
public ResponseEntity<List<Car>> retriveCars() {
try {
List<Car> cars = new ArrayList<>();
carRepository.findAll().forEach(cars::add);
if (cars.isEmpty()) {
return new ResponseEntity<>(null, HttpStatus.NO_CONTENT);
}
return new ResponseEntity<>(cars, HttpStatus.OK);
}catch(Exception e) {
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@PostMapping(path = "/car")
public ResponseEntity<Car> saveCar (@RequestBody Car car) {
try {
Car _car= carRepository.save(new Car(UUID.randomUUID(), car.getMake(), car.getModel()));
return new ResponseEntity<>(_car, HttpStatus.CREATED);
}
catch(Exception e) {
System.out.println(e);
return new ResponseEntity<>(null, HttpStatus.EXPECTATION_FAILED);
}
}
并在 api.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'
import { Car } from './car';
@Injectable({
providedIn: 'root'
})
export class ApiService {
constructor(private http: HttpClient) { }
baseUrl='http://localhost:8081';
retrieveCars(){
return this.http.get<Car[]>(this.baseUrl+ '/cars');
}
saveCar(car: Car) {
return this.http.post<Car>(this.baseUrl+'/car', car);
}
我的问题是我如何在 ionic 和 springboot 中进行交流? 我需要帮助
解决方案
是的,它不起作用,因为http在手机和模拟器中提供了混合数据....它可以完美地与浏览器一起使用,但不能与模拟器和设备一起使用
解决方案很简单,只需使用https在 baseUrl 中的 api.service.ts 中获取数据,其他一切都很好
https ://localhost:8081
baseUrl='http://localhost:8081';
推荐阅读
- cassandra - 在 Cassandra 表的任何列中使用 IN
- javascript - 无法在 Javascript 中删除对象属性
- .net - 机器人对话框不等待
- typescript - 在 Ionic 中转换为 HmacSHA256 中的字符串时出现不一致
- database - sqLite - 每个表或整个数据库文件的锁定?
- java - 从 Google Drive 下载文件 - 缺少方法?(爪哇)
- javascript - JavaScript:本地存储“布尔”未打开第一个函数调用
- html - 为什么我的链接说找不到文件?
- matlab - 如何使用 MATLAB 在结构内创建新字段?
- laravel-5 - 使用 laravel 黄昏测试 vuetify v-select