Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular 7中使用http post请求获取数据_Angular_Spring Boot - Fatal编程技术网

如何在Angular 7中使用http post请求获取数据

如何在Angular 7中使用http post请求获取数据,angular,spring-boot,Angular,Spring Boot,我正在用Angular7编写一个搜索表单场景。我使用了HTTPPOST代替HTTPGET,尽管它需要使用angular作为前端,SpringBoot作为后端,从mysql数据库获取json对象数组。所有后端部分都已实现,我很难将这些数据发送到前端,因为我使用了Http POST请求 我也尝试过使用Http GET。但我需要传递一个json嵌套对象。所以我用了POST 这是我的Spring boot后端代码: SearchOutput[] search_output; @PostMapping(v

我正在用Angular7编写一个搜索表单场景。我使用了HTTPPOST代替HTTPGET,尽管它需要使用angular作为前端,SpringBoot作为后端,从mysql数据库获取json对象数组。所有后端部分都已实现,我很难将这些数据发送到前端,因为我使用了Http POST请求

我也尝试过使用Http GET。但我需要传递一个json嵌套对象。所以我用了POST

这是我的Spring boot后端代码:

SearchOutput[] search_output;
@PostMapping(value="/service")
@CrossOrigin(origins = "http://localhost:4200",allowedHeaders = "*")
public ArrayList<SearchOutput> SearchContract(@RequestBody SearchContract search_input) throws InterruptedException {


    rooms_adults[] rooms_adults2 = search_input.getRooms_adults();
    ArrayList<SearchOutput> OutputArray = new ArrayList<SearchOutput>();
    SearchOutput singleOutput;
    List<Integer> hotel_ids ;

    for (rooms_adults r_a : rooms_adults2) {

        hotel_ids= trueContdao.getHotelId(search_input.getCheck_in_date(), search_input.getCheck_out_date());

        for (int id:hotel_ids){
            List<Room_Type> roomTypes = roomTypedao.getHotelRoomType(id,r_a.getTotal_rooms(), r_a.getTotal_adults());

            for(Room_Type room:roomTypes){
                singleOutput=new SearchOutput(hotelContdao.getHotelName(room.getHotel_id()),room.getRoom_type(), (float) (room.getPrice()*search_input.getTotal_nights()*r_a.getTotal_adults()*r_a.getTotal_rooms()*1.15));
                OutputArray.add(singleOutput);
            }
        }

    }

    return OutputArray;

}

请帮忙。提前感谢

1订阅请求

2将请求头作为httpOptions内的第三个参数传递,请参阅


3使用Proxy.config启用cors,以获取托管在不同主机HttpVerb+主机名+端口上的服务响应,请参阅

您是否尝试订阅http post并在回调中获取数据?请添加调用SearchService方法PostSearch的组件首先,您是否尝试使用postman
import { Injectable } from '@angular/core';
import { HttpClient ,HttpErrorResponse, HttpHeaders} from '@angular/common/http';
import { SearchOutput } from './SearchOutput.model';


@Injectable({
providedIn: 'root'
})
export class SearchService {

uri = 'http://localhost:9090/tickets';

searchOut: SearchOutput[]

reqHeader = new HttpHeaders({ 'Content-Type': 'application/json','No-Auth':'True' });

constructor(private http: HttpClient) { }

postSearch(SearchData){

return this.http.post<any>(this.uri+'/service',SearchData);

}

}
export class SearchOutput {
hotel_name: string;
room_type: string;
price: Float32Array;
}