Ajax调用仅在本地主机上失败


Ajax call failed only on localhost

我有一个登录的ajax调用:

$.ajax({
        url: url_to_ajax,
        success: function ( data ) {
            switch (data) {
                case "-2": input1.addClass("has-error");
                    break;
                case "-1": input1.addClass("has-error");
                    break;
                case "0": input2.addClass("has-error");
                    break;
                case "1": //everythings ok
                        window.location.replace(base_url);
                    break;
                default: //this should not happens
                        window.location.replace(base_url);
                    break;
            }
        }
    });

铬控制台给了我这个:

GET http://testserv.local/profil/login_call/admin@gmail.com/ross 404 (Not Found)

当我在浏览器中复制这个URL时,一切都很好,它会向我显示结果代码。在实时服务器上一切正常。但在本地主机上。。对我来说,最大的错误是,url是用ajax调用的,因为刷新页面后我就登录了。

有人能帮我吗?

我在windows 8.1 上使用wamp、Apache 2.4.9、PHP 5.5.12

编辑:我在一个月前写了这段代码,在live和localhost上一切都很好。。在我格式化光盘并安装新的W8.1后,此代码不起作用。

6小时后我解决了这个问题。只需放入

header("HTTP/1.1 200 OK");

在你的代码中,如果你和我有同样的"魔术"问题。

这不是AJAX的问题,而是服务器的问题。

您得到的错误是404未找到。这意味着"testserv.local"上的web服务器存在并正在响应,但找不到您要查找的资源。你最近对本地服务器做了什么更改吗?如果在浏览器上打开http://testserv.local/profil/login_call/admin@gmail.com/ross,会发生什么情况?每一个呢:

http://testserv.local/profil/login_call/admin@gmail.com
http://testserv.local/profil/login_call/
http://testserv.local/profil/
http://testserv.local/

(我之所以这么问,是因为如果你使用这些url,Apache中的mod_rewrite可能因为你更改了一些配置而停止工作)