如何发送邮件请求在Ionic 2节点服务器运行在本地主机?
在离子我用服务提供商访问http。
Service.ts文件是这样的。 数据是一个json对象。
import { Injectable } from '@angular/core'; import { Http,Headers } from '@angular/http'; import 'rxjs/add/operator/map'; @Injectable() export class Service { constructor(public http: Http) { console.log('Hello Service Provider'); } addNewPlace(data:any){ let headers = new Headers(); headers.append('Content-Type', 'application/json'); console.log(data); this.http.post("http://127.0.0.1:3000/postData/",data); } }
我的节点app.js文件是这样的
var express = require('express'); var app = express(); var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.get('/',function(req,res){ res.send("Hello_World"); }); app.post('/postData',function(req,res){ console.log(">>>> "+req.body); res.json('Thank You'); }); app.listen(3000,function(){ console.log('Server running at http://127.0.0.1:3000/'); });
我错在哪里? 我想从服务脚本发送数据对象到节点服务器并进行控制。 但是这段代码没有任何反应。 也没有任何错误!
我的节点服务器在端口3000上运行。
我的离子程序运行在8100端口上。
问题解决了! 问题在于CORS。
我安装了Cors并将其导入到我的节点文件中。 现在它工作完美。
var cors = require('cors'); app.use(cors());
将以上代码添加到我的节点文件中。
你可以使用下面的方法。
您的页面组件。
export class MyPage { constructor(public service : Service){} // entry method myPostData(): void { this.service.postData("http://127.0.0.1:3000/postData/",data) } }
你的服务类。
@Injectable() export class Service { //post data postData(url: string, body: string): Observable<your-data-type> { let headers = new Headers(); headers.append('content-type', 'application/json'); let options = new RequestOptions({ headers: headers }); return this.http.post(url, body, options) .map(this.extractData) .catch(this.handleError); } //to extract data private extractData(res: Response) { let body = res.json(); return body || {}; } //to handle error private handleError(error: Response | any) { let errMsg: string; if (error instanceof Response) { const body = error.json() || ''; const err = body.error || JSON.stringify(body); errMsg = `${error.status} - ${error.statusText || ''} ${err}`; } else { errMsg = error.message ? error.message : error.toString(); } console.error(errMsg); return Observable.throw(errMsg); } }
- 如何find在Node + Typescript + VSCodeasynchronous函数调用缺less的等待?
- Angular 2 SimpleChanges Object在第一个npm开始时抛出错误
- 将Firestore依赖项和types导入到node.js
- 通过环境TypeScript公开一个Node.js库
- 使用.ts,.scss,.html复制和观看文件夹
- TypeScript 0.8.2在内部模块中导入Node.js模块
- 如何在TypeScript中增加process.env?
- 设置开发环境(node_modules重复)
- 如何在源代码(用于自定义日志logging)在TypeScript中获取实际的行号