本文介绍了Angular 6:无法发出http请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的有角度的应用程序中,我试图向spring restful API发出http发布请求..但是我无法成功..在浏览器控制台中没有收到任何错误响应..
In my angular application, I am trying to make the http post request to the spring restful API.. but I could not succeed.. I am not getting any error response in the browser console..
我的角度代码是
addToCart(productId: number, quantity: number) {
const headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');
console.log("--------order.service.ts----------addToCart()-------productId:"+productId+":------quantity:"+quantity);
this.http.post('http://localhost:8080/order/addtocart',
'{ "dealerId": 9, "createdBy": "-1", "productId": productId, "quantity": quantity}',
{headers: headers})
.pipe(catchError(this.errorHandlerService.handleError));
}
Spring restful API:
Spring restful API:
package com.wocs.rest.controller;
import java.io.IOException;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wocs.services.common.ServiceException;
import com.wocs.services.order.iface.OrderServiceIface;
import com.wocs.services.userrole.model.User;
@RestController()
@RequestMapping("/order")
public class OrderController {
static Logger logger = Logger.getLogger(OrderController.class);
@Autowired
private OrderServiceIface orderService;
public void setOrderService(OrderServiceIface orderService) {
this.orderService = orderService;
}
@RequestMapping(value = "/addtocart", method = RequestMethod.POST, consumes = "text/plain")
public void addToCart(@RequestBody String stringRequestBody) throws JsonParseException, JsonMappingException, IOException, ServiceException
{
logger.info("addtocart:"+stringRequestBody);
Map<String, Object> jsonMap = new ObjectMapper().readValue(stringRequestBody,
new TypeReference<Map<String,Object>>(){});
orderService.addToCart((Integer)jsonMap.get("dealerId"), (String) jsonMap.get("createdBy"), (Integer)jsonMap.get("productId"), (Integer)jsonMap.get("quantity"));
}
}
浏览器控制台:
任何帮助将不胜感激..预先感谢..
Any help would be appreciated.. Thanks in advance..
推荐答案
您错过了订阅.如果您在服务中声明了addToCart
并想在组件中处理API响应,则将代码修改为:
You missed the subscription. If you have declared addToCart
in service and want to handle API response in component modify code as:
服务
addToCart(productId: number, quantity: number) {
let data = {
"dealerId": 9,
"createdBy": "-1",
"productId": productId,
"quantity": quantity
}
const headers = new HttpHeaders().set('Content-Type', 'text/plain; charset=utf-8');
console.log("--------order.service.ts----------addToCart()-------productId:"+productId+":------quantity:"+quantity);
return this.http.post('http://localhost:8080/order/addtocart',
JSON.stringify(data),
{headers: headers})
.pipe(catchError(this.errorHandlerService.handleError));
}
组件 订阅服务方法
this.service.addToCart(2, 4).subscribe(res => {
console.log(res); // Response from API
})
这篇关于Angular 6:无法发出http请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!