繁体   English   中英

我如何<a href>发出其GET请求而不进行重定向?</a>

[英]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,只有子域不同(/ cart vs / checkout)。 我决定深入了解这个神奇按钮的要求。 我自己的功能异常版本中不存在的唯一请求标头是X-Requested-With ,我当然尝试将其添加到XMLHttpRequest失败。

我注意到的第二件事是一个额外的URL参数,该参数最初未在源代码中列出, fastcart=1所以我尝试添加它,并带到了我本来不希望看到的PHP页面。 大概是200行意大利面,我不确定是否可以在这里发布。 显然,某个地方的脚本正在使用此href并使用它发出GET请求,但是如何? 我已经尝试了XMLHttpRequestajax ,但是都给了我Access-Control-Allow-Origin响应。

我已经看到一种技术的使用,通过在其中添加.click(function(e)并调用return falsee.preventDefault();来禁止<a href>上的页面重定向,但是这些根本就没有让我的<a href>完成所有事情,更不用说一些忍者GET请求。我的问题是最终为什么在我自己尝试GET请求,这个页面已经失败,当一个简单的<a href>有能够绕过SOP并几乎是秘密地发出请求。

显然,我将不得不花更多的时间查看额外参数所吸引的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替换为要添加的商店中商品的编号即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM