Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript location.assign()与$http_Javascript_Angularjs_Http_Hapijs - Fatal编程技术网

Javascript location.assign()与$http

Javascript location.assign()与$http,javascript,angularjs,http,hapijs,Javascript,Angularjs,Http,Hapijs,我的服务器上有一个路由,用于提供文件下载。由于应用程序的性质,我无法链接到任何文件。相反,浏览器客户端向服务器请求文件,服务器反过来从节点客户端请求文件,节点客户端将数据返回给服务器。此时,服务器保存该文件并通知调用方浏览器该文件已准备好接受请求。我在前端使用angular并请求我试图使用的文件$http.get(),在chrome的开发工具中,我可以看到请求成功发生,但文件无法下载。在angular之外键入链接地址将下载该文件。反过来,我使用了$window.location.assign(u

我的服务器上有一个路由,用于提供文件下载。由于应用程序的性质,我无法链接到任何文件。相反,浏览器客户端向服务器请求文件,服务器反过来从节点客户端请求文件,节点客户端将数据返回给服务器。此时,服务器保存该文件并通知调用方浏览器该文件已准备好接受请求。我在前端使用angular并请求我试图使用的文件
$http.get()
,在chrome的开发工具中,我可以看到请求成功发生,但文件无法下载。在angular之外键入链接地址将下载该文件。反过来,我使用了
$window.location.assign(url)
,这确实有效。有人能解释一下为什么
assign()
有效而不是
$http.get()
?有什么区别


谢谢

您不能使用AJAX请求下载文件,或者最好使用XHR。。。打电话时要利用这个

请参阅:

所以最简单的方法就是坚持你现在正在做的事情,或者利用一些第三方工具