锚标记和 $http.get 之间的根本区别是啥?
Posted
技术标签:
【中文标题】锚标记和 $http.get 之间的根本区别是啥?【英文标题】:What is the fundamental difference between an anchor tag and a $http.get?锚标记和 $http.get 之间的根本区别是什么? 【发布时间】:2016-05-06 15:08:10 【问题描述】:我正在使用 Angular 制作一个网络应用程序,我想知道当我单击这样的标签时有什么区别......
<a href="/auth/twitter" target="_self" class="btn btn-primary">Login with Twitter OAuth</a>
与单击在我的服务中触发功能的按钮相比。
$http.get('/auth/twitter')
后者会导致 No 'Access-Control-Allow-Origin' 错误,而第一个不会。所以它们之间有一些不同,但我无法弄清楚或搜索它是什么。
【问题讨论】:
【参考方案1】:您应该使用 $http.get 进行 API/AJAX 调用,并使用锚点进行重定向。
原因是因为 $http.get 期望 URL 返回的结果,如原始 JSON 数据,而不是锚点。
由于只需要重定向,因此不能使用 $http.get 方法,应该使用锚点。
【讨论】:
您能详细说明原因吗? 我不知道为什么一开始我没有想到。但这很有意义!现在我至少知道我可以研究两种“获取”请求之间的区别了。谢谢!【参考方案2】:$http.get 使用XMLHttpRequest 对象发出异步“GET”请求。发送 'No Access-Control-Allow-Origin'
错误消息是因为您的应用向 Twitter 发送了 Cross-Origin XMLHttpRequest。
<a href="/auth/twitter" target="_self" class="btn btn-primary">Login with Twitter OAuth</a>
对"/auth/twitter"
的资源发出同步“GET”请求。
【讨论】:
Sooo.. AJAX GET 和常规 GET 有什么区别?以上是关于锚标记和 $http.get 之间的根本区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章
JTextField 和 JTextPane 之间的根本区别是啥?