我有一个运行良好的 jQuery AJAX 调用:
$.ajax({
url: "http://exampleurl.com/sub/sub2/posts?api_key=ApIKeyGoEsHEre",
dataType: 'jsonp',
success: function(data){
filter(data); // Callback function
}
});
但是我无法获得纯 JS 版本的工作,这dataType: jsonp
给我带来了麻烦。我的尝试如下
这种方法给了我一个错误Unexpected token :
,添加?callback=filter
到 URL 的末尾说找不到页面
var script = document.createElement('script');
script.src = 'http://exampleurl.com/sub/sub2/posts?api_key=ApIKeyGoEsHEre';
console.log(script);
document.body.appendChild(script);
我的第二种方法;Unexpected token :
也给了我一个错误
function jsonp(url) {
var head = document.head;
var script = document.createElement("script");
script.setAttribute("src", url);
head.appendChild(script);
head.removeChild(script);
}
function jsonpCallback(data) {
filter(JSON.stringify(data));
}
jsonpCallback(jsonp("http://exampleurl.com/sub/sub2/posts?api_key=ApIKeyGoEsHEre"));
我的第三种方法;给我一个错误cannot load (the url). Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.
function loadXMLDoc() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "http://exampleurl.com/sub/sub2/posts?api_key=ApIKeyGoEsHEre", true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
filter(JSON.stringify(data));
console.log(JSON.stringify(data));
}
}
xmlhttp.send();
}
loadXMLDoc();
我哪里错了?