0

我遇到了一个真正困扰我的问题。在我的 Opencart 安装中,我的帐户注册页面无法正常工作。它是一个多站点,该页面在另一个站点上运行良好。问题在于区域,当它尝试根据国家/地区获取区域时会引发错误。当我用 Firebug 检查它时,我看到它发送一个 OPTIONS 请求而不是一个 GET 请求,就像在另一个页面上生成成功请求时那样。不幸的是,这不是唯一的问题,我能够通过在 .ajax 调用中指定“crossDomain:'false'”作为参数来让它发送 GET 请求,但这仍然不能解决错误。发送和返回的 cookie 也不同。我'

编辑:我在评论中添加了对问题的回答,因为 Stackoverflow 确实允许我提供更多链接。

第二次编辑:我发现您访问注册页面的方式很重要。一些指向它的链接不会产生任何问题。我越来越认为这可能与cookie有关。

4

1 回答 1

0

在这种OPTIONS情况下,请求确实很奇怪,几乎看起来客户端(JS/浏览器)不知道服务器上可以使用哪些请求方法。

无论如何,在模板中catalog/view/theme/<YOUR_THEME>/template/account/register.tpl找到这段代码(几乎是文件的结尾):

<script type="text/javascript">

    $('select[name=\'country_id\']').bind('change', function() {
        $.ajax({
            url: 'index.php?route=account/register/country&country_id=' + this.value,
            dataType: 'json',
            beforeSend: function() {

dataType: 'json',添加type: 'get',之前type: 'post',你应该得到:

<script type="text/javascript">

    $('select[name=\'country_id\']').bind('change', function() {
        $.ajax({
            url: 'index.php?route=account/register/country&country_id=' + this.value,
            type: 'post',
            dataType: 'json',
            beforeSend: function() {

通过这个你指定应该使用哪个具体的 HTTP 请求方法。

于 2013-10-07T08:08:26.737 回答