【问题标题】:Magento 2 wrong base url on ajax call on checkout pageMagento 2在结帐页面上的ajax调用上错误的基本网址
【发布时间】:2021-08-18 13:31:33
【问题描述】:

我已将 Magento 版本升级到 2.3.7。之后,我在结帐页面上遇到一个奇怪的问题,即当它调用 ajax 函数时,URL 生成错误。以前是这样的

/rest/default/V1/guest-carts/AC72N37Vmo3uGMIXEVQfIDt1ubuZLJws/estimate-shipping-methods

但现在升级 Magento 版本后

/checkout/undefinedrest/default/V1/guest-carts/AC72N37Vmo3uGMIXEVQfIDt1ubuZLJws/estimate-shipping-methods

不确定这个 undefined 是从哪里添加到 url 中的??

研究笔记:-

正确设置了安全和不安全的基本网址。我又检查了一遍

我还导航到生成此 ajax 调用的文件,该文件是 供应商/magento/module-checkout/view/frontend/web/js/model/shipping-rate-processor/new-address.js

这里的 storage.post 是从 ajax 调用生成的,它有 serviceurl & payload 作为参数。

在 getRates 函数中 - 如果我们 console.log "serviceUrl" 那么它会显示下面的 url

rest/default/V1/guest-carts/FsS4QvllSq1vpuxZuC8ycQa0VRMOcQCy/estimate-shipping-methods

这似乎是正确的,storage.post() 函数将此作为参数并调用 ajax 请求,然后进入 .fail() 函数

所以我认为问题在于 url 的前面部分被添加到其中以进行 ajax 调用 http://sitename.local/checkout/undefined ---> 在这里不知何故添加了未定义的内容,这破坏了整个 url

其他用户也遇到了同样的问题,但目前还没有解决方案。

https://magento.stackexchange.com/questions/256273/undefined-rest-api-checkout-cart https://community.magento.com/t5/Magento-2-x-Programming/Magento2-Wrong-base-url-on-ajax-call/td-p/435435

谁能帮我解决这个问题?

【问题讨论】:

  • 你解决了这个问题吗?
  • @Carloscody 还没有:(
  • @nshah143 你找到解决方案了吗?
  • @mvistas 是的,我能够解决这个问题。

标签: php ajax api magento


【解决方案1】:

我正在回答我自己的问题,因为我能够自己解决问题。

我不确定这个解决方案是否会成为每个面临类似问题的人的通用解决方案,但就我而言,它帮助我解决了问题,因此如果解决方案不是 100% 准确,它可能会指导其他面临类似问题的人在他们的场景中。

所以在我的项目中我有一个文件

app/design/frontend/Birdbrain/default/Magento_Theme/templates/page/js/require_js.phtml

里面有如下代码

<?php
/**
 * Copyright © 2013-2017 Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
?>
<script>
    var require = {
        "baseUrl": "<?php /* @escapeNotVerified */ echo $block->getViewFileUrl('/') ?>"
    };
</script>

从源中删除此文件后,上述问题中解释的问题已修复,删除后未出现其他问题。

想法:- 当我检查我的版本控制系统时,我发现这个文件是在 2017 年添加的,从那时起就没有对其进行任何更改,所以在将 magento 版本升级到 2.3.x 后,它与一些最新的代码发生了冲突并且不再有意义,因此删除它可以解决问题,至少对我而言。

【讨论】:

    猜你喜欢
    • 2010-12-02
    • 2013-08-01
    • 2020-08-10
    • 2014-11-17
    • 1970-01-01
    • 2019-11-13
    • 2014-02-05
    • 1970-01-01
    • 2017-10-30
    相关资源
    最近更新 更多