Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我会收到这个AJAX脚本的状态404?_Javascript_Ajax_Json - Fatal编程技术网

Javascript 为什么我会收到这个AJAX脚本的状态404?

Javascript 为什么我会收到这个AJAX脚本的状态404?,javascript,ajax,json,Javascript,Ajax,Json,我进入了AJAX,正在使用MAMP web服务器,并试图实现一个简单的脚本,该脚本应该会告诉我这是否有效。我试图通过使用XMLHttpRequest()的status属性来跟踪问题; 我发现这是一个404类型的问题(找不到页面),这令人惊讶,因为我正在使用JSON文件来处理与ajax脚本位于同一目录中的脚本 以下是AJAX脚本: var xhr = new XMLHttpRequest(); xhr.onload = function() { if (xhr.status === 200) {

我进入了AJAX,正在使用MAMP web服务器,并试图实现一个简单的脚本,该脚本应该会告诉我这是否有效。我试图通过使用XMLHttpRequest()的status属性来跟踪问题; 我发现这是一个404类型的问题(找不到页面),这令人惊讶,因为我正在使用JSON文件来处理与ajax脚本位于同一目录中的脚本

以下是AJAX脚本:

var xhr = new XMLHttpRequest();
xhr.onload = function() {

if (xhr.status === 200) {

    alert("Good");
}

else if(xhr.status === 304)
{
    alert("304");

}


else if(xhr.status === 404)
{
    alert("404");
} 

else
{
    alert("500");
}
xhr.open("GET", 'json.json', true);
xhr.send(null);
这里是我的文件json.json:

{
"events" :
[
    {
        "location" : "San Francisco, CA"
    }

]
}
这真令人沮丧。提前感谢,

劳尔·拉奥

我使用JSON文件来处理与ajax脚本位于同一目录中的脚本

json文件的位置与某些JavaScript文件的位置无关。服务器不知道或不关心前端上运行的JS文件是从哪里检索到的,并且无法找到与此相关的任何内容。相反,ajaxurl是相对于所服务页面的URL进行解释的(如果指定为相对的,也可以指定为绝对的,在这种情况下,它是相对于web文档根的)

html.html
检索
json.json
时可以使用的示例:

webroot
    html.html
    json.json       <== is at same level as html.html
    js
        js.js       <== doesn't matter where this is

webroot
    html
        html.html
        json.json   <== is at same level as html.html
    js
        js.js

它返回404意味着它找不到您的“json.json”文件。使用浏览器开发者工具中的“网络”选项卡查看请求的完整URL。json.json文件是否与执行脚本的页面位于同一文件夹中?是的,json文件位于同一文件夹中。您在回复上述评论时说,“json文件与执行脚本的页面位于同一文件夹中。”但在你的问题中,你说“JSON文件来处理脚本,它与我的ajax脚本位于同一目录中”。这是两件不同的事情。是哪一个?事实上,我认为最好是提到它应该与执行脚本的页面位于同一文件夹中,但除此之外,是的。Sry但“Web服务器的根目录”是什么意思,你是指htdocs,因为它位于根目录中,JSON文件与我的ajax.js文件位于同一文件夹中。这个答案并不能回答我为什么会得到404状态,因为404的意思是“找不到”。是的,我指的是htdocs。没有人知道或关心JS文件在执行时来自何处。Ajax URL是相对于所服务的页面进行解释的。
webroot
    html.html
    js
        js.js       <== doesn't matter where this is
        json.json   <== is not at same level as html.html
webroot
    html
        html.html
    json.json       <== at web root
    js
        js.js