gpt4 book ai didi

javascript - 将 ERB HTML 从 Rails 渲染为 Angular,Angular 尝试将其解释为 JSON

转载 作者:行者123 更新时间:2023-12-03 09:36:29 28 4
gpt4 key购买 nike

下面的代码片段通过 $resource 发送自定义 HTTP 请求。它命中的端点从 Rails 中的 ERB 模板返回 HTML 响应。

JS/Angular :

Case
.getTemplate({ id: $routeParams.id, template: $scope.template.name })
.$promise
.then(function(response) {
console.log(response);
});

我的目标是使用该 HTML 并将其放入文本区域。但是,将响应记录到控制台的结果显示 JSON,如下所示:

{
"1": "<",
"2": "!",
"3": "d",
"4": "o",
"5": "c"
}

HTML 响应中的第一个字符是 <!doctype html> 。 Angular 将 HTML 响应逐字符拆分为 JSON,键是迭代器,值是每个字符。

我怎样才能阻止它这样做,以便我可以引用 response在匿名函数中并使用从 API 返回的 HTML。

编辑:

function CaseService($resource, BASE) {
return $resource(BASE + 'cases/:id', {
id: '@id'
}, {
getTemplate: {
method: 'POST',
url: BASE + 'cases/:id/get_template',
headers: {
'Accept': 'text/html'
}
}
});
}

angular
.module('MyModule')
.factory('Case', CaseService);

最佳答案

尝试将您的responseType设置为空字符串,这可能会覆盖json的默认设置,如MDN doc

function CaseService($resource, BASE) {
return $resource(BASE + 'cases/:id', {
id: '@id'
}, {
getTemplate: {
method: 'POST',
url: BASE + 'cases/:id/get_template',
headers: {
Accept: 'text/html'
},
responseType: '' // This is the magic line
}
});

$resource doc 中提到了这一点

关于javascript - 将 ERB HTML 从 Rails 渲染为 Angular,Angular 尝试将其解释为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31319913/

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