当我尝试从服务器获取 JSON 数据时出现一些错误
Some errors when I tried to get JSON data from a server
我正在使用jQuery的getJSON方法和Extjs中的一种方法从服务器获取一些json数据。
Javascript 代码放在服务器 A 上的 apache2 上,Web 服务放在服务器 A 上的 tomcat7 上。但是当我使用主机 B 访问 javascript 时,javascript 代码中的 a 方法调用 Web 服务。请求是从主机 B 向服务器 A 发出的,对吗?
但是我得到一个错误:
XMLHttpRequest cannot load http://192.168.5.107:8080/restful/product/all/?callback=?&_dc=1384439969320&page=1&start=0&limit=25. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.5.107' is therefore not allowed access.
我必须添加
?callback=?
到我的网址。
但是我收到另一个错误,称为"未捕获的语法错误:意外令牌:"与我的jQuery代码。我用谷歌搜索了这个,大多数人的建议是删除回调。但是我必须使用它,否则我无法获取 JSON 数据。
这是我使用 jQuery 的代码:
$.getJSON('http://192.168.5.115:8080/restful/standard/id/' + id, function(data) {
console.log('old data:'n');
console.log(data); // use data as a generic object
oldObj = data;
var newObj = Object.keys(oldObj).map(function(k) {
return { key: k, value: oldObj[k] };
});
console.log('new data:'n');
console.log(newObj); // use data as a generic object
});
甚至我添加了回调参数。Extjs 中的代码仍然会收到第一个错误。
这是我的 Extjs 代码:
// create the data store
var store = Ext.create('Ext.data.Store', {
model: 'Product',
proxy: {
type: 'ajax',
url : 'http://192.168.5.115:8080/restful/product/all/?callback',
reader: {
type: 'json'
}
}
});
我试图修复他三天,但一无所获。我真的希望有人能帮我解决它。
如果要"尝试回调",则必须使用类型为"jsonp"的代理,而不是"ajax"。
回调参数将由代理自动添加,但是您的服务器必须处理它,即使用客户端要求的实际回调名称。
另一个问题将为您提供客户端和服务器的完整示例(在答案中)。
相关文章:
- 巨大的数据和PHP错误
- 本地跨原点数据错误
- d3在数据更新时错误地附加了dom元素
- 使用odata 4的jaydata 1.5和保存/更新数据时的错误
- 正在检查ajax响应中的错误数据
- Modx数据包管理器ext-all.js错误
- 尝试使用.ninnerHTMLlog打印数据,获取错误Uncaught TypeError:undefined不是函数
- 加载json时出现Ember.js和Ember数据错误
- JavaScript运行时错误:完成此操作所需的数据尚不可用
- 尝试发布大型JSON数据时出现错误请求错误
- 挖空错误:数据保留未定义
- 未定义 D3 错误数据
- 未捕获的引用错误:数据未在挖空中定义
- jquery .ajax 总是返回错误 - 数据被添加到数据库中
- 类型与未定义相比的错误 - 数据为空
- jQuery ajax json——查看返回的错误数据
- 从模拟端口读取时从Arduino串行接收到的错误数据
- 如何在socket io中向单个客户端发送错误数据包?
- Dropzone JS上传到WCF获取错误数据
- 在收到错误数据后清空剑道UI中的网格