Angular.js更改GET请求的内容类型

时间:2014-04-22 18:15:03

标签: javascript json angularjs

我正在尝试使用Angular.js $ http.get()函数引入json文件。调用显然可以找到该文件,但它以text / plain类型返回,而不是application / json。我从this post听说我需要更改服务器代码以使其工作,但我无法控制服务器。有没有办法从我的结束强制application / json?

我的代码:

var blueprint = {};
$http.get('/path/to/data.json', {header : {'Content-Type' : 'application/json'}})
    .success(function (data) {
        for (var prop in data) {
            blueprint[prop] = data[prop];
        }
    })
    .error(function(){
        console.log('Data not found.');
    });

谢谢,
泰勒

1 个答案:

答案 0 :(得分:0)

据我所知,当$http service检测到响应是JSON对象时,在文本上应用JSON.parse()并直接返回相应的JS对象。在你的情况下,它没有检测到它,所以你应该自己解析响应。请尝试以下方法:

var blueprint = {};
$http.get('/path/to/data.json', {header : {'Content-Type' : 'application/json'}})
.success(function (data) {
    data = JSON.parse(data); // missing line
    for (var prop in data) {
        blueprint[prop] = data[prop];
    }
})
.error(function(){
    console.log('Data not found.');
});