Javascript 我缺少什么来修复这个JSONP代码?

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

我遵循了一个JSONP示例将数据发送到跨域,但是我得到了一个

未捕获的TypeError:未能在“节点”上执行“insertBefore”:2 需要参数,但仅存在1个

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的内置处理?