0
HTTP POSTが応答しなくなりました。私は開発者ツールでは何の反応も見ません。コードで何が間違っていますか。助けてください。 APIからの応答を取得し、新しいレコードをリストに追加する方法。Node.js Anglular 2 HTTPポストで動作しないSQLliteを使用するRestfull API
強いテキスト // MY REST APIコード: //あなたはどのルートを定義する前にこれらのステートメントを置きます。
var express = require('express');
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('app_data/SocBillSys.db');
var bodyParser = require('body-parser');
var app=express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use(allowCrossDomain);
//これにより、任意のドメインアクセスAPIサーバーを許可します。
function allowCrossDomain(req, res, next){
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS,
PUT, PATCH, DELETE'); // If needed
res.setHeader('Access-Control-Allow-Headers', 'X-Requested- With,contenttype'); // If needed
res.setHeader('Access-Control-Allow-Credentials', true); // If needed
next();
}
// INSERT RECORD
app.post('/db/society', function(req,res)
{
db.run("INSERT INTO society (name, type, address, city, state, pincode) VALUES (?,?,?,?,?,?)",
[ req.body.name,
req.body.type,
req.body.address,
req.body.city,
req.body.state,
req.body.pincode ]
,
function(error,response)
{
if (error == null)
res.status(202).json({"id": this.lastID});
else
res.status(500).send(error.message);
});
});
app.listen(3000, function() {
console.log('NODE.JS WEB API SERVER is listening at port 3000...');
});
アンギュラサービスのHTTPのCALL
import { Injectable } from '@angular/core';
import { Http, Response, Headers, RequestOptions } from '@angular/http';
import { ISociety } from '../Society/Society';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class SocietyService {
constructor(private _http: Http){}
createSociety(society: ISociety): void{
let headers = new Headers({'Content-Type': 'application/json' });
let options = new RequestOptions({headers: headers});
this._http.post('http://localhost:3000/db/society', JSON.stringify(society), options)
.map(this.handleResponse)
.catch(this.handleError);
}
private handleResponse(res: Response) {
let body = res.json();
return body;
}
private handleError (error: Response | any) {
console.error(error.message || error);
return Observable.throw(error.message || error);
}
}
私はあなたのコードと私のコード他の間に違いが表示されません「X-Requested-With、Content-Type」よりも問題はありません。それは私のコピーペーストの問題でした。 –
あなたのソリューションに感謝Ayush。私はまずあなたが訂正したものを理解できませんでしたが、後でそれを得ました。私はあなたの助けに感謝します –