我需要做一个跨域请求,我遇到了getJSON问题。
$.getJSON("http://usr:pwd@10.0.1.xx/cgi-bin/remote/request.cgi?m=json&r=grp&fn=getvalue&alias=1/3/51&callback=?",
function(result) {
alert('hi');
});
回调不会触发,即我没有收到警报。如果我在浏览器窗口中粘贴http://链接,我会得到所需的结果。这是一个简单的数字,在这种情况下是2
。我也可以将请求设置为xml,在这种情况下,浏览器窗口中的结果为<value>2</value>
。如果有人能告诉我,我的getJSON有什么问题会很棒。
非常感谢和最好的问候
答案 0 :(得分:1)
您的JSON可能存在问题。这取自文档。
重要提示:从jQuery 1.4开始,如果JSON文件包含语法错误, 请求通常会无声地失败。避免经常手工编辑 因此JSON数据。 JSON是一种数据交换格式 语法规则比JavaScript的对象更严格 字面符号。例如,所有以JSON表示的字符串, 无论是属性还是价值,都必须附上 双引号。有关JSON格式的详细信息,请参阅http://json.org/。
源:
http://api.jquery.com/jquery.getjson/
使用$.ajax
答案 1 :(得分:0)
您尝试呼叫的远程端点似乎不支持JSONP或CORS。这可以在浏览器的控制台输出中看到,也可以直接粘贴网址并将&callback=?
参数替换为&callback=somevalue
。
为了能够进行跨域AJAX调用,远程端点必须支持CORS或JSONP。如果您希望能够使用AJAX使用它们,您应该联系此端点的作者以启用其中一个。