ajax请求在localhost wampserver中不起作用

时间:2015-06-10 19:49:40

标签: javascript php jquery ajax wampserver

我有以下代码

$.ajax({
        url: "../profile/companyAutocomplete.php",
        type: "GET",
        data: dataQuery,
        dataType: "json",
        success: function(responseData) {
            companySelectHandler(responseData);
        }
    });

我在生产服务器中调用,没有任何问题。但是当我在本地系统中使用它时,没有发出ajax请求。我已尝试过所有浏览器,但它仍然相同。造成这个问题的原因是什么?我需要打印相同的ajax错误消息。我怎样才能做到这一点?

4 个答案:

答案 0 :(得分:5)

感谢您的回答。这不是因为相对URL引用。

我使用以下函数来确定导致Ajax请求失败的错误。

var s = "ðóññêèé ÿçûê";
var b = Encoding.GetEncoding(1252).GetBytes(s);
var fixedString = Encoding.GetEncoding(1251).GetString(b);
Console.WriteLine(fixedString); // русский язык

错误是一个解析错误,它是在浏览器在返回JSON之前尝试打印其他内容时生成的。在输出JSON之前使用ob_start和ob_end_clean修正了它,它通过以下链接“dataType: "json" won't work”获取帮助来清除缓冲区

答案 1 :(得分:2)

最常见的问题是尝试在localhost上错误地访问该页面。

使用WAMP,XAMPP等,你不能只输入地址栏:c:\ website \ index.php

相反,您必须输入:localhost

有关详细信息,请参阅此答案:

Unable to load assets when testing website localy

答案 2 :(得分:0)

由于本地主机和服务器之间的配置差异,可能是它在本地主机中查找的是“ http://localhost:port/path/file.php”而不是“ http://localhost:port/webapproot/path/file.php”。如果是问题所在,则在本地主机中以相对路径在Web应用程序名称前更改Ajax调用可能会解决。通常在托管服务器上,“ / file.php”是指应用程序的根目录,因此没有问题,但是在本地主机中,由于配置,它可能默认情况下正在查看本地服务器的根目录。最好总是使用相对路径“ /webappname/path/file.php”,但是使用“ http://127.0.0.1:port/webappname/path/file.php”会更快,而不是在本地URL中使用“ localhost”。

答案 3 :(得分:-1)

您应该输入网址而不是相对路径,例如网址:" http://localhost/something/profile/companyAutocomplete.php"。

您也可以省略域名,以" /something/profile/companyAutocomplete.php"开头。