javascript - 如何在angular 4中将json数据构建为formdata
问题描述
如何将以下 json 作为表单数据发送?试过 JSON.stringify 并且它不起作用。
{
name: 'starwars',
year: 1977,
data: [{
'id': 'c5f6d301-328e-4167-8e13-504afb9a030e',
'item': 'bc4db36e-9e7c-478d-93a2-d4be32dacec1',
'qty': '1'
},
{
'id': 'c5f6d301-328e-4167-8e13-504afb9a030e',
'item': 'bc4db36e-9e7c-478d-93a2-d4be32dacec1',
'qty': '1'
},
],
}
解决方案
import { Injectable, OnInit } from '@angular/core'
import { Http, Headers, URLSearchParams, RequestOptions } from '@angular/http'
import { Observable, Subject } from 'rxjs/Rx'
import 'rxjs/add/operator/map'
import 'rxjs/add/operator/catch'
@Injectable()
export class YifyMoviesProvider {
constructor(public http: Http) {
}
postData(): Observable < any > {
let jsonData = {
name: 'starwars',
year: 1977,
data: [{
'id': 'c5f6d301-328e-4167-8e13-504afb9a030e',
'item': 'bc4db36e-9e7c-478d-93a2-d4be32dacec1',
'qty': '1'
},
{
'id': 'c5f6d301-328e-4167-8e13-504afb9a030e',
'item': 'bc4db36e-9e7c-478d-93a2-d4be32dacec1',
'qty': '1'
},
],
};
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' })
let options = new RequestOptions({
headers: headers
})
let body = new URLSearchParams()
body.set('mydata', JSON.stringify(jsonData))
return this.http.post(`yourip`, body, options).
map(res => res.json())
.catch((error: any) => {
return Observable.throw(new Error(error.status))
})
}
}
如果您想将 json 数据作为表单数据发布到 Rest api,这将在 Angular 4 中工作!
推荐阅读
- mysql - 无法添加或更新子行 MySQL 错误 1452
- git - 如何提及一次以使用 gitignore 忽略来自不同目录的 2 个同名文件夹?
- vba - 在 Word 文档中的特定单词之间搜索
- javascript - 如何以标签输入的形式编写选中的复选框
- android - 如何制作可以在 KitKat 中运行的颤振相机应用程序?
- laravel-5 - 共享主机中的 Laravel 子域
- c++ - 可以访问非线程安全容器内的指针指向的值(线程安全映射中的条目)吗?
- java - 将多租户架构中每个租户的异常记录在单独的文件中
- c# - UserControl ComboBox 未更新
- python - python pandas将文本中的数字提取到新列