gpt4 book ai didi

AJAX:本地主机上的 "The requested URL was not found on this server"

转载 作者:行者123 更新时间:2023-12-04 00:10:17 25 4
gpt4 key购买 nike

  1. Ajax 可以很好地联系远程服务器(使用 jsonp)并返回漂亮的数据。
  2. 在 localhost 中,它表示在此服务器上找不到该 url。
  3. 我在 ajax 之前“提示”url,将其复制粘贴到浏览器地址栏中,然后返回了漂亮的数据。

为什么?

哦,为什么我的 ajax 不能在本地主机上工作,而 url 显然有效?

我使用 WAMP 服务器并为项目文件夹创建了一个别名目录。正如我所说,该 url 有效是因为我可以通过浏览器的地址栏访问它,但由于某种原因 ajax 失败。

代码:

var temp_url = "localhost/api/1.1/app_dev.php/getsomething/something";
$.ajax(
{
type: "GET",
url: temp_url,
timeout:5000, // 5 second timeout in millis!
data:{ 'get_data' : querystring},
dataType: "jsonp",
cache: false,
success: function( data, textStatus, jqXHR ) {
console.debug(data);
},
error: function(jqXHR, exception)
{
if (jqXHR.status === 0) {
alert('Not connect.\n Verify Network.');
} else if (jqXHR.status == 404) {
alert('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
alert('Internal Server Error [500].');
} else if (exception === 'parsererror') {
alert('Requested JSON parse failed.');
} else if (exception === 'timeout') {
alert('Time out error.');
} else if (exception === 'abort') {
alert('Ajax request aborted.');
} else {
alert('Uncaught Error.\n' + jqXHR.responseText);
}
}
});

最佳答案

由于我们无权访问或没有足够的信息来复制您的开发服务器,我们能做的最好的事情就是提出一些可能修复它的建议。以下是三个最可能的原因(根据我的经验):

  1. 您使用的是相对路径而不是绝对路径。如果您的站点位于,比方说,[localhost]/site/page.html,则 AJAX 请求可能由您的浏览器在本地解释,因为您使用了相对路径。所以你的实际请求可能被发送到:[localhost]/site/localhost/api/1.1/app_dev.php/getsomething/something...这也解释了为什么你可以复制和粘贴alert() 中的 URL,因为将其复制并粘贴到 URL 栏会自动使其成为绝对路径。

解决方案:尝试使用绝对路径,如下所示:

var temp_url = "/api/1.1/app_dev.php/getsomething/something"

您可以通过在 Chrome、Safari 或 Firefox 的开发工具中检查“网络”面板来确认您的应用请求的 URL。


  1. 您所在的当前 URL 以/结尾。请参阅 the second answer here ; AJAX 对您所在的当前 URL 是否以正斜杠结尾很挑剔。

解决方案:如果可能,请在当前页面中添加或删除正斜杠。


  1. Localhost 可能会因 CORS 原因拒绝您的请求。目前这可能不是您的问题,因为您报告的是 404 错误,但请注意,我经常遇到 localhost 不允许AJAX 请求由于一些神秘的跨域源策略,所以这是一件好事,以防您很快遇到它。

解决方案:参见http://enable-cors.org .如果这不起作用,您将需要启动服务器以在本地运行,而不是依赖于从文件系统中检索文件。

祝你好运!

关于AJAX:本地主机上的 "The requested URL was not found on this server",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com