我在从文件加载困难JSON内容。 console.log
打印"server-side failure with status code 0"
,这意味着请求失败。
我的JSON文件的URL是正确的,该文件存在于给定的地址。
萤火显示了错误:
"NetworkError: 405 Not Allowed - http://localhost:8080/4910.json?_dc=1336714070619
电脑和网络标签可显示状态405 not allowed
。
为什么发生这种情况的任何想法?
Ext.Ajax.request({
url: 'http://localhost:8080/4910.json',
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
console.log(obj[0].name);
},
failure: function(response, opts) {
console.log('server-side failure with status code ' + response.status);
}
});
此外,什么是添加参数_dc=1336714070619
的GET请求的结束?
仅供参考..
对于谁是加入参数_dc。 dc代表禁用缓存 。
默认情况下,在ExtJS的每个请求就可以自动补齐与_dc请求变量。 更多信息
如果你不想要它,只需设置disableCaching: false
你的要求
Ext.Ajax.request({
disableCaching: false,
url: 'http://localhost:8080/4910.json',
......
});
对于为什么不允许的 。
尝试在不打开JSON URL路径_dc
,或者也许有一些错误您的服务器。
如果你访问该文件是在同一个域中,你可以直接给在那里的相对路径。
如果请求是跨域:如果您需要从另一个域读取数据并不能设置代理服务器(你自己的域的网络服务器上运行,并透明地将请求转发到domainB.com一些软件,使它看起来像他们实际上是从domainA.com出来),你可以使用Ext.data.proxy.JsonP并称为JSON-P(JSON与填充)的技术,它可以帮助您解决该问题得到,只要在domainB.com服务器被设置为支持JSON-P的反应。 见JsonPProxy的介绍文档的更多细节。
检查 http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.proxy.JsonP
我认为你应该使用的相对路径url
(相对这里比较JS文件),例如,它应该是4910.json
如果JSON文件是在同一文件夹作为您的js文件。
也许,错服务器端口?
这对我的作品好:
Ext.Ajax.request ({
url: 'http://localhost:80/sof/json.json' ,
disableCaching: false ,
success: function (res) {
// JSON is {name:val, type:val}
console.log (Ext.JSON.decode(res.responseText).name);
} ,
failure: function () {
console.log ('error');
}
});
检查你的web服务器设置。 我在OSX甲基苯丙胺已本地主机:8888。
每当我使用本地主机上的文件我使用相对路径。
你有没有试图改变使用chmod文件权限? 也许你甚至不能在浏览器中打开它?
你试过从PHP中写入文件和事后检查?