我怎样才能使它成为一个“三脚”呢?在不重定向的情况下发出GET请求
How can I make <a href> make its GET request without redirecting?
一些上下文:我正在使用Bigcommerce(它不支持PHP)来设计一个店面,并希望允许用户在结帐页面中添加产品,而不需要将他们重定向到购物车页面。我知道这是可能的,因为在首页上,有一些预编程的按钮,它们只是一些按钮样式的<a href="http://somestore.com/cart.php?action=add&product_id=9001">
标签。它们拉出一个模态,最重要的是将产品添加到购物车 -都不需要重定向。
所以一开始这让我觉得这是一个简单的问题-只是$.ajax
到页面并完成它,但后来我遇到了旧的Access-Control-Allow-Origin
错误,这是奇怪的,因为我在同一域上编写我的Javascript,我试图击中,只有子域是不同的(/购物车vs/checkout)。我决定更深入地研究一下这个神奇按钮所提出的要求。这个请求的唯一不存在的请求头是X-Requested-With
,我当然试图将其添加到我的XMLHttpRequest
中,但没有成功。
我注意到的第二件事是一个额外的URL参数,它最初没有在源代码中列出,fastcart=1
,所以我试着添加它,并被带到一个PHP页面,我显然不打算看到。大概有200行意大利面,我不确定能不能贴在这里。很明显,某个地方的脚本正在使用这个href
并使用它来发出GET请求,但是如何呢?我试过XMLHttpRequest
和ajax
,但都给了我Access-Control-Allow-Origin
的响应。
我看到过一种技术的使用,通过添加.click(function(e)
来禁止<a href>
上的页面重定向,并调用return false
或e.preventDefault();
,但这些根本不允许我的<a href>
完成任何事情,更不用说一些忍者GET
请求了。我的问题是,当一个简单的<a href>
已经能够绕过SOP并几乎秘密地发出请求时,为什么我自己在GET
请求到这个页面的尝试失败了。
显然,我将不得不花费更多的时间来查看PHP脚本,因为我被额外的参数所吸引。然而,事实证明,这是一个比我最初想象的更大的谜团,一路上教会了我很多东西。不幸的是,我还没有解决这个问题,我真的需要让这个功能工作。如果它对我的这些请求的来源有帮助,我将很高兴,但现在我已经没有时间了,必须休息一下。如果有人有更多的web开发经验可以帮助,我将非常感激!
您不必使用<a>
标记,您所要做的就是在您想要使用的任何元素上添加事件侦听器,以便将商品添加到购物车中。例如,下面是一个按钮的代码,它将id为# 9001的产品添加到购物车中。
<style>
.button {
display: table-cell;
width: 200px;
height: 75px;
color: #fff;
background: #000;
text-align: center;
vertical-align: middle;
cursor: pointer;
}
</style>
<div class="button">Click Me</div>
<script type="text/javascript">
$('.button').click(function () {
$.ajax({type: 'GET', url: '/cart.php?action=add&product_id=9001'});
});
</script>
基本上,制作你想要的元素,按照你想要的样式,然后添加一个.click()
侦听器。
只需将产品id替换为您要添加的商店中的产品编号。
- 通过javascript重定向html传递php变量
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 使用angular重定向到html页面
- 如何在chrome扩展中重定向到html页面
- 无法从jquery Mobile导航栏重定向到另一个页面
- ng视图外的链接重定向到ng视图内的页面
- 在phonegap应用程序内部重定向不起作用
- CORS-重定向到第二个GET正在接收的页面
- AJAX不会在文件上传后重定向到网页-POST方法
- 重定向时角度刷新浏览器
- 通过链接重定向不;我不在jstree中工作
- 根据select选项元素将表单重定向到不同的URL
- 通过JQuery重定向到另一个页面
- 重定向到“父窗口”
- 重定向iFrame中的父URL
- PHP-如何重定向到同一页面并更改DOM's
- chrome.tabs.update() 重定向到 'chrome-extension://invalid/'
- 我们如何在不更改url的情况下使用锚点点击从一个页面重定向到另一个页面
- 每隔三个用户重定向到另一个页面
- 我怎样才能使它成为一个“三脚”呢?在不重定向的情况下发出GET请求