2017-01-09 49 views
-1

我刚刚尝试了学习javascript,我想制作一个使用JSON文件作为存储的网站。到目前为止,我已经做出GET方法工作:为什么我的JSON发布方法不能在本地Web服务器的JSON文件上工作?

$.ajax({ 
    type: 'POST', 
    url: 'Projects/Sample/data.json', 
    data: {name: 'Billy Bob', age: 27}, 
    success: function(data) { 
    console.log("Friend added!", data); //the new item is returned with an ID 
    } 
}); 

此代码的工作,如果我用的是:

$.ajax({ 
    type: 'GET', 
    url: 'Projects/Sample/data.json', 
    success: function(data) { 
    console.log("I have friends!", data); 
    } 
}); 

因为我从这个网站http://rest.learncode.academy/学习,我还利用其职务方法尝试网站的json http://rest.learncode.academy/api/johnbob/friends。但是当我尝试使用位于我的Web服务器中的JSON文件时,新数据似乎不会被添加。我使用XAMPP作为我的网络服务器。

+1

错误控制台告诉你什么错误? –

+1

你在哪里运行AJAX请求?在你的本地服务器上(所以它是一个相同的原始请求),或在不同的服务器上? – Terry

+0

@Terry在我的html的正文内,在本地web服务器的html文件中 – WannabeWeebDev

回答

0

我认为这是值得看在这个问题上接受的答案:

Deadly CORS when http://localhost is the origin

我肯定会推荐的lvh.me选项,所以不是

$.ajax({ 
    type: 'GET', 
    url: 'Projects/Sample/data.json', 
    success: function(data) { 
    console.log("I have friends!", data); 
    } 
}); 

你必须

$.ajax({ 
    type: 'GET', 
    url: 'http://lvh.me/data.json', 
    success: function(data) { 
    console.log("I have friends!", data); 
    } 
}); 

假设你的data.json位于基础文件夹中(即你可以通过点击来访问它http://lvh.me/data.json

+0

它有一个错误,说XMLHttpRequest无法加载http://lvh.me/SVmatches.json。请求的资源上没有“Access-Control-Allow-Origin”标题。因此不允许Origin'http:// localhost'访问。该响应具有HTTP状态码404。 – WannabeWeebDev

+0

@WannabeWeebDev您可以浏览到该地址并查看JSON文件吗?如果是这样,可能需要查看其他问题中发布的其他选项,例如Chrome的“--disable-web-security”标志。但请记住,您只想在测试时使用该标志。一旦完成,请将其删除,因为这意味着您的浏览器不安全。 – Wakeuphate

+0

是的,我可以看到使用lvh URL的JSON。我试图研究这一点,但从来没有真正理解在Chrome中真正做到这一点,我试图再次研究它嗯。 编辑:关于禁用网络安全的nvm,只是google了一下大声笑我很糟糕。 – WannabeWeebDev

相关问题