2017-10-29 5 views
0

typescript 코드는 POST 끝점을 호출해야합니다. 끝점은 본문 매개 변수가없는 URL입니다. 나는 URL과 다른 매개 변수를 제공하지 않음으로써 http.post() 메소드를 시도했다.url 및 본문 매개 변수가없는 각도의 HTTP 게시물 메서드 요청

샘플 코드

let postUrl = "http://hostname:9893/service/fetch/72637"; 

this.http.post(postUrl, {}).map((res:Response) => res.json()).subscribe(data => { 
     console.log("post url: " + data); 
}); 

오류 :

core.es5.js:1020 message:"Cannot read property 'post' of undefined" stack:"TypeError: Cannot read property 'post' of undefined\n at HTMLTableRowElement.<anonymous> (http://localhost:3000/5.chunk.js:222:23)\n at HTMLTableRowElement.wrapFn [as __zone_symbol___onclick] (http://localhost:3000/polyfills.bundle.js:6601:39)\n at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:3000/polyfills.bundle.js:5969:31)\n at Object.onInvokeTask (http://localhost:3000/vendor.bundle.js:66347:33)\n at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:3000/polyfills.bundle.js:5968:36)\n at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:3000/polyfills.bundle.js:5736:47)\n at HTMLTableRowElement.ZoneTask.invoke (http://localhost:3000/polyfills.bundle.js:6031:38)" 
__proto__:Error {constructor: , name: "TypeError", message: "", …} constructor:function TypeError() { … } 


업데이트 :
해결책 : 위의 코드는 콜백 내에서 사용되는, 그래서이 상황은 따라서 다른 문맥으로 업데이트

HTTP입니다 사용 불가. 이것으로 바인딩하면 문제가 해결됩니다. 따라서 다른 HTTP 콘텍스트

답변

0

상기 코드 콜백 내에서 사용되는 주입해야하므로이 컨텍스트가 업데이트 될 때 사용할 수 없습니다. 이것으로 바인딩하면 문제가 해결됩니다.

0

HTTP가 생성자

import {Http} from '@angular/http'; 

export class Myservice{ 
    constructor(public http: Http) { } 
} 
+0

가져 오기 및 생성자 코드가 이미 코드에 있습니다. 동일한 클래스에서 this.http.get (url) 메서드가 성공적으로 실행됩니다. –