将数据参数(不是查询参数)提供给 window.location.href ?创建动态文件
Give data parameters (not query params) to window.location.href ? To create a dynamic file
我的目标是从Angularjs处理的动态内容中下载csv文件。该文件是由Django在服务器端构造的。
使用 Django 获取文件很容易。我们只需要一个视图来返回一个 HttpResponse (doc)。在客户端,我可以通过使用 $window.location.href
更改浏览器的 url 来获取它。
如果我有一些参数,我可以将它们作为查询参数提供给 window.location with search
(Mozilla doc)。
必须将大量数据传递给服务器,因此我无法使用查询参数。(我受到网址最大长度的限制)。
使用 AngularJS 的 $http
,我们可以为 GET 设置更多的配置,包括数据参数:doc。此数据是"作为请求消息数据发送",它没有编码到url。我想使用它。
因此,如果我可以使用$window.location.href
调用设置此数据,我的 pb 将得到解决。可能吗?
如果我用 Angular 的 $http
触发 GET,Django 的HttpResponse
不会被解释为响应,它被拦截为success
子句中的数据。我怎样才能使用它?
您是否看到另一种创建和下载动态文件的策略?
编辑:我用这个来获取csv文件。
其他策略思路:
- 创建一个文件服务器端并返回其URL(Django:管理文件)
- 我们可以使用表单。不过,这似乎确实是最简单的。
非常感谢 !
如果要根据参数从服务器请求数据,则应将它们作为GET查询参数发送,但是,如果发送大量参数,则应在GET请求正文($http data
字段)中发送它们。Angular 适合处理 JSON,所以如果你必须处理其他数据(.XML例如 CSV),你必须将其转换为 JSON。Angular 在 $http
config 对象中提供了一个transformRequest
和一个transformResponse
函数(见这里)来做到这一点(不过你必须自己编写逻辑)。
$window.location.href
不合适,因为它将浏览器窗口重定向到指定位置(通常需要一些 html),这将返回数据,但您无法在 JS/Angular 上下文中与之交互。
我强烈建议您使用$http.get
并根据需要转换数据。也许您找到了一个为您处理转换的库。
- 如何使用 href 连接两个参数
- 通过javascript将url参数传递到多个不同的href链接中
- Angular UI路由器:UI不使用参数构建href
- window.location.href未设置查询参数
- 通过 jQuery 从 href 参数检索值
- AngularJS:如何通过ng-href将多个参数传递给控制器
- 将数据参数(不是查询参数)提供给 window.location.href ?创建动态文件
- 从标记中的 href 获取查询字符串参数
- 使用 Ajax 发送的表单包含多参数和 A href
- Javascript id 作为 href 中的参数
- 使用 window.location.href 和 Jquery 更改多个 url 参数
- 为什么在通过 AJAX 获取 href 的更多参数后无法触发默认单击
- location.href + 指定搜索参数
- 如何在电话间隙中单击 href 链接时通过 url 传递参数
- 使用Javascript将URL参数传递给href链接
- 将变量值传递给锚标记中的 href 参数
- 使用JavaScript将URL参数传递给href
- 在Javascript中传递数据和href作为函数参数
- 使用href在javascript函数中传递此参数
- 将参数传递到<a>href标记,只使用HTML