我有以下代码
$.ajax({
url: "../profile/companyAutocomplete.php",
type: "GET",
data: dataQuery,
dataType: "json",
success: function(responseData) {
companySelectHandler(responseData);
}
});
我在生产服务器中调用,没有任何问题。但是当我在本地系统中使用它时,没有发出ajax请求。我已尝试过所有浏览器,但它仍然相同。造成这个问题的原因是什么?我需要打印相同的ajax错误消息。我怎样才能做到这一点?
答案 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
有关详细信息,请参阅此答案:
答案 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"开头。