gpt4 book ai didi

javascript - Angular http.get 不喜欢开头和结尾带有方括号的文本文件

转载 作者:行者123 更新时间:2023-11-29 10:41:00 25 4
gpt4 key购买 nike

我有一些 Angular 代码从 S3 抓取一个文本文件然后显示它,但是如果文本文件开始和结束的内容看起来像方括号内的标签,http 调用就会出错。所以这是代码:

                    $http.get(url).success(function(data, status, headers, config) {
console.log("success " + data);
}).
error(function(data, status, headers, config) {
console.log("error");

});

然后生成错误的文件将是这样的:

            [image: image1.png]

lispum iupsum oeri lispum iupsum oeri

[image: image1.png]

这让我很烦恼,如果文件顶部或底部只有一个“标签”,则不会发生,看起来两者都必须有。删除其中任何一个,一切都会立即起作用。任何人都知道为什么会这样或有解决方法吗?

如果我 console.log 错误例程中的错误,数据、状态和 header 都设置为未定义。而且我也得到了这个 Angular 错误:

            SyntaxError: Unexpected token i
at Object.parse (native)
at oc (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:14:156)
at Yb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:77:125)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:77:487
at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:7:302)
at Yc (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:77:469)
at c (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:79:109)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:112:276
at l.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:126:84)
at l.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js:123:195)

最佳答案

由于 Angular $http 服务尝试使用 JSON 模式匹配来解析您的数据,当它遇到来自服务器的以 [ 开头并以以下结尾的流时],它会将其解释为 JSON 数组并尝试构建数据的对象表示,这显然是不可能的。

您可以在 $http.get() 中构建自定义 transformResponse 参数,以不同于传统解析器的方式处理您的数据。类似这样的东西可能有效(注意:未测试):

$http.get(url,
{
transformResponse: function(data){
//normally we would take the raw data here and do transformations on it,
//but in your situation, you don't want any transformations done.
return data;
}
}).success(function(data, status, headers, config) {
console.log("success " + data);
...

本质上,我们不是让 Angular 解析数据,而是采用 transformResponse 并确保数据保持原样。

关于javascript - Angular http.get 不喜欢开头和结尾带有方括号的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29359745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com