使用原始JavaScript获取JSONP
Get JSONP with raw JavaScript?
我想用原始JavaScript(无jQuery)从外部域读取JSONP数据
所以我们说https://www.domain.com/abc.php?foo=bar
包含:{"error":false,"data_a":"abcabc","data_b":"123-456"}
我在谷歌上找不到太多关于这个的信息。但如果我理解正确的话,它应该是这样的:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://www.domain.com/abc.php?foo=bar&callback=DataCallback";
</script>
</head>
<body>
<script>
function DataCallback(data) {
for (var key in data) {
var value = data[key];
alert(key+' = '+value);
}
}
</script>
</body>
</html>
我没有收到错误,但也没有弹出任何警报。
顺便说一句,我注意到
https://www.domain.com/abc.php?foo=bar
和
https://www.domain.com/abc.php?foo=bar&callback=数据回调
两者都在浏览器中显示CCD_ 2
这可能是问题所在吗?因为我认为第二个链接应该显示:DataCallback({"error":false,"data_a":"abcabc","data_b":"123-456"})
?
您有两个问题。
您从未发送请求
您必须先将脚本元素添加到文档中,然后才能执行它。
document.body.appendChild(script);
(不要在主体存在之前或在定义回调函数之前尝试这样做)
服务器没有响应JSONP
您不能像处理JSONP一样处理纯JSON。服务器以JSON响应(好吧,当我尝试它时,它以购买域的广告响应……也许你指的是example.com
?)
我有完整的纯javascript jsonp示例。。。
如果你想要,你可以看看
https://github.com/toosha01/ajax-javascript
相关文章:
- 在.js文件上使用Ajax获取JSONP
- $http.获取和$http.JSONP未能获得Google API响应
- 获取jsonp时出现授权标头错误
- 在没有jsonp的情况下从另一个域获取数据(json格式)
- 使用原始JavaScript获取JSONP
- 通过Yahoo API YQL- Javascript获取JSONP数据
- 使用 jQuery 和 jsonp (vimeo api) 按键获取选定的 json 值
- AngularJS在从HTTP返回的JSON中获取语法错误.JSONP.
- 用于 json 和 jsonp 的 $.ajax 和 $.getJSON 无法正确获取来自第三方服务器的响应
- Ajax / jQuery 获取整个 JSONP-Result-String
- JSONP 从 WCF 服务获取缓存响应时出现问题
- 如何使用ajax jsonp将数据从一个域获取到另一个域
- 请求失败时,无法在JSONP代理回调中获取响应
- 从Angular Controller中的php文件获取JSONP数据
- 使用 Angular.js获取 JSONP
- 从ajax jsonp回调中获取列表
- 使用jsonp获取400(错误请求)
- 从JSONP javascript获取数据
- 通过Angular从Firebase主机获取JSONP文件
- 开放天气图API,无法获取JSON,但无法获取JSONP,无法进行异步调用