Javascript 通过Reactjs以Json格式发布请求
我必须调用一个从reactjs(前端)到spring boot(后端)的post请求。我需要知道如何通过reactjs调用下面的json请求 在SpringBoot中,我有以下课程 产品类别Javascript 通过Reactjs以Json格式发布请求,javascript,java,json,reactjs,spring-boot,Javascript,Java,Json,Reactjs,Spring Boot,我必须调用一个从reactjs(前端)到spring boot(后端)的post请求。我需要知道如何通过reactjs调用下面的json请求 在SpringBoot中,我有以下课程 产品类别 @Entity @Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = { @UniqueConstraint(name = "productName",columnNa
@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
@UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {
@Id
@SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
@GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
@Column(name="PRODUCT_ID")
private int productId;
@Column(name = "PRODUCT_NAME",nullable = false)
private String productName;
@Column(name = "NUMBER_OF_UNIT",nullable = false)
private int numberOfUnitInCartoon;
@Column(name = "PRICE_OF_CARTOON",nullable = false)
private double priceOfCartoon;
@Column(name="URL_OF_IMAGE")
private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {
private Product product;
private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {
private List<ProductTotal> productTotal;
private double totalPrice;
}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {
@PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
{
if(totalPrice.getProductTotal().size()!=0)
return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
else
throw new NullPointerException();
}
}
ProductTotal类
@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
@UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {
@Id
@SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
@GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
@Column(name="PRODUCT_ID")
private int productId;
@Column(name = "PRODUCT_NAME",nullable = false)
private String productName;
@Column(name = "NUMBER_OF_UNIT",nullable = false)
private int numberOfUnitInCartoon;
@Column(name = "PRICE_OF_CARTOON",nullable = false)
private double priceOfCartoon;
@Column(name="URL_OF_IMAGE")
private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {
private Product product;
private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {
private List<ProductTotal> productTotal;
private double totalPrice;
}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {
@PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
{
if(totalPrice.getProductTotal().size()!=0)
return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
else
throw new NullPointerException();
}
}
总价类
@Entity
@Table(name = "PRODUCT",schema = Schema.ASSIGNDB,uniqueConstraints = {
@UniqueConstraint(name = "productName",columnNames = "PRODUCT_NAME")
})
@Getter
@Setter
public class Product {
@Id
@SequenceGenerator(name = "PRODUCT_ID_GEN",sequenceName = Schema.ASSIGNDB+".PRODUCT_ID_SEQ",initialValue = 1003,allocationSize = 1)
@GeneratedValue(generator = "PRODUCT_ID_GEN",strategy = GenerationType.SEQUENCE)
@Column(name="PRODUCT_ID")
private int productId;
@Column(name = "PRODUCT_NAME",nullable = false)
private String productName;
@Column(name = "NUMBER_OF_UNIT",nullable = false)
private int numberOfUnitInCartoon;
@Column(name = "PRICE_OF_CARTOON",nullable = false)
private double priceOfCartoon;
@Column(name="URL_OF_IMAGE")
private String urlOfImage;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class ProductTotal {
private Product product;
private int quantity;
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
public class TotalPrice {
private List<ProductTotal> productTotal;
private double totalPrice;
}
@CrossOrigin(origins = "*",maxAge = 3600)
@RestController
@RequestMapping("/price")
public class PriceController {
@PostMapping(value = "/total",consumes = {MediaType.APPLICATION_JSON_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE})
private ResponseEntity<TotalPrice> getTotalPrice(@RequestBody TotalPrice totalPrice)
{
if(totalPrice.getProductTotal().size()!=0)
return new ResponseEntity<>(priceService.getTotalPrice(totalPrice),HttpStatus.OK);
else
throw new NullPointerException();
}
}
我必须将上述格式作为post请求传递给reactjs
fetch('http://localhost:9090/price/total2',{
method:'POST',
headers: {'Content-Type':'application/json'},
body: JSON.stringify({
productTotal:{
// i have no idea how to write this, can anyone help
}
})
}).then(res=>res.json)
.then(result=>{
console.log(`your result ${result}`);
},error=>{
this.setState({
isLoaded:true,
error
})
});
在我看来,目标应该是这个,除非我遗漏了什么:
productTotal: [
{
product: {
productId: 1001
},
quantity: 25
},
{
product: {
productId: 1003
},
quantity: 15
}
]
您需要像这样发送对象
{
"productTotal": [
{
"product":{
"productId": 1001
},
"quantity":25
},
{
"product":{
"productId": 1003
},
"quantity":15
}
]
}
{
"product_total": [{
"quantity":10,
"product": {
"product_id": 1,
"product_name": "name",
"numberOfUnitInCartoon":"..."
"price_of_cartoon": 1,
"url_of_image": "..."
}
},
...
],
"total_price":123
}