我遇到了一个真正困扰我的问题。在我的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 请求方法。