我正在尝试获取从 https 安全站点发送的 JSON,
客户端希望不要使用任何服务器端语言(全部都是 Javascript)
我读到,当使用 Jquery 中的 .ajax 函数时,我必须使用 JSONP 才能从安全站点加载 JSON。
我的第一个问题是我需要将此 JSONP 设置为什么格式?现在我的代码如下所示:
html =new Object();
html = $.ajax({
url: "https://my-secure.net",
async: false,
dataType: 'jsonp'
}).responseText;
//alert(html);
alert("myObject is " + html.toSource());
console.log(html);
然而,Firebug 中没有发出任何警报,也没有记录任何内容。基本上我希望能够操作 JSON 数据。我在 Firebug 下的响应中看到了数据,但有一个错误,提示“标签无效”。我读过,为了解决这个问题,您将其包含在带有额外括号的 eval 函数中,但这不起作用。
http://b.lesseverything.com/2007/10/25/invalid-label-error-when-eval-json http://b.lesseverything.com/2007/10/25/invalid-label-error-when-eval-json
我还收到一个错误,指出我的 $.ajax 请求“未定义”,但我可以在响应中看到数据。我怀疑这与我获取初始数据的方式有关。任何意见,将不胜感激。谢谢你!
例如你可以使用 getJSON
$.getJSON('ajax/test.json', function(data) {
$('.result').html('<p>' + data.foo + '</p>'
+ '<p>' + data.baz[1] + '</p>');
});
检查完整的 getJSON 文档http://api.jquery.com/jQuery.getJSON/ http://api.jquery.com/jQuery.getJSON/
EDIT
我错了...使用 Jquery.ajax 会导致跨浏览器问题,但使用 Jquery.getJSON 则不会
http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29 http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29
下面是跨域获取JSON的例子
EDIT
Firefox 有 HTTPS 问题,据我所知,如果您像这样发送请求,问题就会得到解决
$.getJSON('ajax/test.json',{}, function(data) {
$('.result').html('<p>' + data.foo + '</p>'
+ '<p>' + data.baz[1] + '</p>');
});
Source: 使用 jquery 的 AJAX https POST 请求在 Firefox 中失败 https://stackoverflow.com/questions/597073/ajax-https-post-requests-using-jquery-fail-in-firefox
希望这可以帮助
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)