请求JSON加载到Javascript对象中.回应上的差异
Request JSON to load into Javascript object. Differences in response
首先看一下这个函数,注意json文件位于本地:
if (request) {
request.open("GET", "flicks.json", true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var testi = request.responseText;
var listmovies = JSON.parse(testi);
console.log(typeof testi); // THIS RETURNS STRING
console.log(typeof listmovies); // THIS RETURNS OBJECT - YAY!
}
};
request.send(null);
}
这太完美了,我得到了我想要的,一个包含JSON数据的对象
但当我更改JSON文件的位置并将其放在服务器上时:
request.open("GET", "http://www.myserver.com/flicks.json", true);
然后它返回这个错误:
SyntaxError: JSON.parse: unexpected end of data
JSON 示例
{
"feed": "....",
"description": "Fake List of Netflix movies",
"modified": "2010-10-25T15:04:46Z",
"generator": "I did it",
"items": [
{
"title": "...",
"link": "h...",
"media": {
"m": "..."
},
"date_taken": "..."
},
{
"title": "...",
"link": "...",
"media": {
"m": "..."
},
"date_taken": "..."
}
]
}
为什么它在本地工作,而不是在另一种方式?
如果你把:http://www.myserver.com/flicks.json
放在浏览器中,你能看到数据吗?(文件是否可访问)。第二个猜测,你确定文件是相同的(本地和服务器)?
编辑1:试试这个。只是通话顺序略有变化。
if (request) {
request.onreadystatechange = function() {
if (request.readyState == 4) {
var testi = request.responseText;
var listmovies = JSON.parse(testi);
console.log(typeof testi); // THIS RETURNS STRING
console.log(typeof listmovies); // THIS RETURNS OBJECT - YAY!
}
};
request.open("GET", "http://www.myserver.com/flicks.json", true);
request.send(null);
}
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- 请求JSON加载到Javascript对象中.回应上的差异