Opencart多站点注册奇怪的请求

时间:2013-10-05 18:51:08

标签: php jquery ajax opencart

我遇到了一个真正困扰我的问题。在我的Opencart安装中,account registration page无效。它是一个多站点,页面工作正常on the other site。问题在于区域,当它尝试根据国家/地区获取区域时会引发错误。当我用Firebug检查它时,我发现它发送了一个OPTIONS请求,而不是像在另一个页面上生成成功请求时那样发送GET请求。不幸的是,这不是唯一的问题,我能够通过在.ajax调用中指定“crossDomain:'false'”作为参数来发送GET请求,但仍然无法修复错误。发送和返回的cookie也不同。我试图找到潜在的问题,或者至少可以找到解决问题的方法。

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

第二编辑: 我发现你访问注册页面的方式很重要。某些链接不会产生任何问题。我越来越想到这可能与cookie有关。

1 个答案:

答案 0 :(得分: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请求方法。