Opencart多站点注册奇怪的请求


Opencart multisite registration strange request

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

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

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

在这种情况下,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 请求方法。