【问题标题】:jQuery ajax works on local but not on serverjQuery ajax 适用于本地但不适用于服务器
【发布时间】:2010-06-09 17:10:09
【问题描述】:

我实际上对这段代码很感兴趣....

$.ajax({
                'url'               : site_root + '/ajax.php',
                'type'          : 'POST',
                'data'          : 'function=check_user_login_name&user_login=' + user_login,
                beforeSend  : function()
                {
                    $('#check_result_span').html('Checking ...');
                },
                success         : function(data)
                {
                    if(data != 1)
                    {
                        $('#check_result_span').addClass('green').html('Available!');
                    }
                    else
                    {
                        $('#check_result_span').addClass('red').html('Already taken!');
                    }
                }
            });

这在本地机器上可以正常工作,但不能在服务器上...

服务器页面链接是http://onlyfreelancer.com/signup.php

请点击“检查可用性”链接,服务器上没有任何反应,但在本地它会显示用户登录名是否仍然可用

有什么帮助吗?

【问题讨论】:

  • 我收到警报 - '状态:成功'?
  • 这就是我所看到的,刚刚删除了警报()。更糟糕的是,当我点击该链接时,我在 firebug 控制台中看不到任何条目

标签: jquery ajax


【解决方案1】:

当点击该链接时,生成的请求是:

http://www.onlyfreelancer.com/ajax.php

但是(至少在我的 Safari 调试器中),原点被视为

http://onlyfreelancer.com

也许这是一个“同源策略”问题。你能设置你的代码从 onlyfreelancer.com 请求 ajax.php(没有 www)吗?

【讨论】:

  • 实际上onlyfreelancer.com/ajax.php 是发帖的链接。我有一个 var site_root 包含“onlyfreelancer.com
  • 是的——所以site_root = http://www.onlyfreelancer.com,因此你的ajax调用URL是http://www.onlyfreelancer.com/ajax.php。但是您是从页面http://onlyfreelancer.com/signup.php 加载它的。没有万维网。同源策略希望在调用页面和通过 ajax 请求的页面中看到相同的 URL。
  • 是的!而已。抱歉,Ken 我对同源政策有误解。我认为 ajax 调用只需要对同一个域进行并且不计入子域。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2012-03-16
  • 2013-11-05
  • 1970-01-01
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
相关资源
最近更新 更多