如何将 formData 从 Angular 2 发送到 nodejs?
How to send formData from Angular 2 to nodejs?
我正在使用此代码:
var creds = "username=" + 'user' + "&password=" + 'password';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
http.post('http://localhost:3000/', creds, {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
NodeJs 在 this.request.body 上获得了 json { 用户名:'user',密码:'password' }。但是我需要 json 像 {fields: { username: 'user', password: 'password' } }
制作指定格式的对象,使用json.stringify将其制作成字符串并发送到node.js服务器。
如果您只想使用 url 编码形式,则不能。事实上,您的 Node 应用程序会将字符串内容 (username=user&password=somepwd
) 转换/反序列化为一个简单的(扁平的)JavaScripty 对象。
要使您在 Node 应用程序中收到的数据达到您想要的(特定格式),您需要为请求负载切换到 application/json
内容类型,如下所述:
var creds = {
fields: {
username: 'user',
password: 'password'
}
}
var headers = new Headers();
headers.append('Content-Type', 'application/json');
http.post('http://localhost:3000/', JSON.stringify(creds), {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
不要忘记在您的 Node 应用程序中注册正确的解串器。例如快递:
var express = require('express');
var application = express();
application.use(bodyParser.json());
希望对你有帮助,
蒂埃里
我正在使用此代码:
var creds = "username=" + 'user' + "&password=" + 'password';
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
http.post('http://localhost:3000/', creds, {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
NodeJs 在 this.request.body 上获得了 json { 用户名:'user',密码:'password' }。但是我需要 json 像 {fields: { username: 'user', password: 'password' } }
制作指定格式的对象,使用json.stringify将其制作成字符串并发送到node.js服务器。
如果您只想使用 url 编码形式,则不能。事实上,您的 Node 应用程序会将字符串内容 (username=user&password=somepwd
) 转换/反序列化为一个简单的(扁平的)JavaScripty 对象。
要使您在 Node 应用程序中收到的数据达到您想要的(特定格式),您需要为请求负载切换到 application/json
内容类型,如下所述:
var creds = {
fields: {
username: 'user',
password: 'password'
}
}
var headers = new Headers();
headers.append('Content-Type', 'application/json');
http.post('http://localhost:3000/', JSON.stringify(creds), {
headers : headers
})
.map(res => res.json())
.subscribe(
data => this.logData(data),
err => this.logError(err),
() => console.log('Quote Complete')
);
不要忘记在您的 Node 应用程序中注册正确的解串器。例如快递:
var express = require('express');
var application = express();
application.use(bodyParser.json());
希望对你有帮助, 蒂埃里