我试图从Angular2 beta 8发布json但是标题没有被传输:
import { RequestOptions, RequestMethod, RequestHeaders, RequestOptionsArgs, Http } from 'angular2/http';
// ...
let headers = new Headers(),
body = JSON.stringify({ identifier, password });
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
let opts:RequestOptionsArgs = { headers: headers };
this.http.post(this.baseUrl + 'auth/login', body, opts)
.subscribe(
data => console.log(data),
err => console.log(err.json().message),
() => console.log('Authentication Complete')
);
Run Code Online (Sandbox Code Playgroud)
但Chrome中的XHR调用没有这些标题.Chrome调试显示Content-Type标题已标记Provisional Headers are Shown并显示Content-Type:text/plain;charset=UTF-8.标题值似乎是正确的:
console.log(headers.get('Content-Type')) // => 'application/json'
console.log(headers.get('Accept')) // => 'application/json'
Run Code Online (Sandbox Code Playgroud)
问题是我要进去RequestHeaders,但它应该是Headers.为什么它没有给我一个错误,我不知道.
我正在从Angular2发起一个发布请求到ASP.NET 5控制器操作.Angular正确发布数据并命中控制器操作,但它没有映射到控制器操作中定义的参数,参数是null.同时通过Request对象检查Request.Form具有正确的文本数据但不绑定到模型.
角
let body = JSON.stringify({ firstName: 'Ali' });
let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
this.http.post(this.url, body, { headers: headers })
.subscribe(
(data) => {
console.log('Response received');
console.log(data);
},
(err) => { console.log('Error'); },
() => console.log('Authentication Complete')
);
Run Code Online (Sandbox Code Playgroud)
ASP.NET
[HttpPost]
public IActionResult DemoAction(string firstName)
{
var req = Request;
return null;
}
Run Code Online (Sandbox Code Playgroud)
Request.Form具有类似{\"firstName\":\"Ali\"}但参数firstName为的形式的数据null