Javascript 我缺少什么来修复这个JSONP代码?
我遵循了一个JSONP示例将数据发送到跨域,但是我得到了一个 未捕获的TypeError:未能在“节点”上执行“insertBefore”:2 需要参数,但仅存在1个 在Javascript 我缺少什么来修复这个JSONP代码?,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我遵循了一个JSONP示例将数据发送到跨域,但是我得到了一个 未捕获的TypeError:未能在“节点”上执行“insertBefore”:2 需要参数,但仅存在1个 在head.insertBefore(脚本)上行 我错过了什么 function requestJSONP(url) { // create script with passed in URL var script = document.createElement('script'); script.src = url
head.insertBefore(脚本)上代码>行
我错过了什么
function requestJSONP(url) {
// create script with passed in URL
var script = document.createElement('script');
script.src = url;
// after the script is loaded (and executed), remove it
script.onload = function () {
this.remove();
};
// insert script tag into the DOM (append to <head>)
var head = document.getElementsByTagName('head')[0];
head.insertBefore(script);
}
function processWeather(data) {
alert(data);
}
var url = 'http://www.domain.com/urls.php?callback=processWeather&format=json&cookie=jtyh65&url=thispage&key=765';
requestJSONP(url);
函数requestJSONP(url){
//使用传入的URL创建脚本
var script=document.createElement('script');
script.src=url;
//加载(并执行)脚本后,将其删除
script.onload=函数(){
这个。删除();
};
//将脚本标记插入DOM(附加到)
var head=document.getElementsByTagName('head')[0];
head.insertBefore(脚本);
}
函数processWeather(数据){
警报(数据);
}
var url='1〕http://www.domain.com/urls.php?callback=processWeather&format=json&cookie=jtyh65&url=thispage&key=765';
请求JSONP(url);
insertBefore
需要两个参数。我很确定你的意思
head.appendChild(script);
而不是
head.insertBefore(script);
另外,请注意DOM元素的remove
方法是最近添加的,因此此行:
this.remove();
…在您的onload
处理程序中,在较旧的浏览器上可能会失败(我在看您,IE8),因为这个
有一个DOM元素,而不是jQuery实例。你可能想要
this.parentNode.removeChild(this); // DOM
…或者当然(正如您将问题标记为jQuery):
…相反
当您为问题添加标签时jquery
:
也就是说,jQuery支持JSONP,您不必自己再编写它:
$.ajax({
url: 'http://www.domain.com/urls.php?&format=json&cookie=jtyh65&url=thispage&key=765',
dataType: 'jsonp',
success: function(data) {
// Use `data`, it's already been parsed for you
},
error: function() {
// Something didn't work
}
});
jQuery将为JSONP端点创建一个回调函数,将回调=
添加到URL中,等等。insertBefore
需要两个参数。我很确定你的意思
head.appendChild(script);
而不是
head.insertBefore(script);
另外,请注意DOM元素的remove
方法是最近添加的,因此此行:
this.remove();
…在您的onload
处理程序中,在较旧的浏览器上可能会失败(我在看您,IE8),因为这个
有一个DOM元素,而不是jQuery实例。你可能想要
this.parentNode.removeChild(this); // DOM
…或者当然(正如您将问题标记为jQuery):
…相反
当您为问题添加标签时jquery
:
也就是说,jQuery支持JSONP,您不必自己再编写它:
$.ajax({
url: 'http://www.domain.com/urls.php?&format=json&cookie=jtyh65&url=thispage&key=765',
dataType: 'jsonp',
success: function(data) {
// Use `data`, it's already been parsed for you
},
error: function() {
// Something didn't work
}
});
jQuery将为JSONP端点创建一个回调函数,将回调=
添加到URL中,等等。insertBefore
需要两个参数。我很确定你的意思
head.appendChild(script);
而不是
head.insertBefore(script);
另外,请注意DOM元素的remove
方法是最近添加的,因此此行:
this.remove();
…在您的onload
处理程序中,在较旧的浏览器上可能会失败(我在看您,IE8),因为这个
有一个DOM元素,而不是jQuery实例。你可能想要
this.parentNode.removeChild(this); // DOM
…或者当然(正如您将问题标记为jQuery):
…相反
当您为问题添加标签时jquery
:
也就是说,jQuery支持JSONP,您不必自己再编写它:
$.ajax({
url: 'http://www.domain.com/urls.php?&format=json&cookie=jtyh65&url=thispage&key=765',
dataType: 'jsonp',
success: function(data) {
// Use `data`, it's already been parsed for you
},
error: function() {
// Something didn't work
}
});
jQuery将为JSONP端点创建一个回调函数,将回调=
添加到URL中,等等。insertBefore
需要两个参数。我很确定你的意思
head.appendChild(script);
而不是
head.insertBefore(script);
另外,请注意DOM元素的remove
方法是最近添加的,因此此行:
this.remove();
…在您的onload
处理程序中,在较旧的浏览器上可能会失败(我在看您,IE8),因为这个
有一个DOM元素,而不是jQuery实例。你可能想要
this.parentNode.removeChild(this); // DOM
…或者当然(正如您将问题标记为jQuery):
…相反
当您为问题添加标签时jquery
:
也就是说,jQuery支持JSONP,您不必自己再编写它:
$.ajax({
url: 'http://www.domain.com/urls.php?&format=json&cookie=jtyh65&url=thispage&key=765',
dataType: 'jsonp',
success: function(data) {
// Use `data`, it's already been parsed for you
},
error: function() {
// Something didn't work
}
});
jQuery将为JSONP端点创建一个回调函数,将回调=
添加到URL,等等。如果使用jQuery,为什么要编写自己的代码来使用JSONP资源,而不是使用jQuery对JSONP的内置处理,为什么要编写自己的代码来使用JSONP资源,而不是使用jQuery对JSONP的内置处理?如果使用jQuery,为什么要编写自己的代码来使用JSONP资源,而不是使用jQuery对JSONP的内置处理?如果使用jQuery,为什么要编写自己的代码来使用JSONP资源,而不是使用jQuery对JSONP的内置处理?