在AngularJS 1.4中,默认情况下,POST请求会自动生成请求头。但是,有些浏览器(如Google Chrome)在跨域请求时,不会自动添加请求头,导致POST请求失败。
为了解决这个问题,需要手动设置请求头。可以使用$httpProvider.defaults.headers.common将所需的头信息设置为默认值。例如,以下代码将设置“X-Requested-With”头信息:
app.config(function($httpProvider) {
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
});
这样,每个$http请求都会自动添加“X-Requested-With”头信息,无需手动添加。
此外,还可以使用以下代码为特定的请求添加请求头:
$http({
method: 'POST',
url: '/api/myResource',
headers: {'Content-Type': 'application/json'}
}).then(function successCallback(response) {
// 请求成功处理代码
}, function errorCallback(response) {
// 请求失败处理代码
});
通过在$http请求中添加headers选项,可以为请求添加所需的头信息。
总之,无论是通过设置默认头信息还是为每个请求手动添加头信息,都可以解决AngularJS 1.4因浏览器未添加自动生成的请求头而导致POST请求失败的问题。