私は完全にうまく機能する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
問題が発生しています。私の試みは次のとおりです
このアプローチでは、URL の末尾にUnexpected token :
追加?callback=filter
すると、ページが見つからないというエラーが表示されます
var script = document.createElement('script');
script.src = 'http://exampleurl.com/sub/sub2/posts?api_key=ApIKeyGoEsHEre';
console.log(script);
document.body.appendChild(script);
私の2番目のアプローチ。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"));
私の 3 番目のアプローチ。のエラーが表示されます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();
どこが間違っていますか?