Javascript UncaughtTypeError:在jQueryAjax调用中解析JSONP响应时,number不是函数
我正在尝试使用WP-API插件从wordpress博客中获取数据。我的js文件使用jQuery对api进行ajax调用。我需要使用JSONP作为响应类型,因为我正在尝试访问跨域信息 当页面加载时,我得到一个错误“UncaughtTypeError:number不是函数”,我的响应如下开始:Javascript UncaughtTypeError:在jQueryAjax调用中解析JSONP响应时,number不是函数,javascript,jquery,ajax,wordpress,jsonp,Javascript,Jquery,Ajax,Wordpress,Jsonp,我正在尝试使用WP-API插件从wordpress博客中获取数据。我的js文件使用jQuery对api进行ajax调用。我需要使用JSONP作为响应类型,因为我正在尝试访问跨域信息 当页面加载时,我得到一个错误“UncaughtTypeError:number不是函数”,我的响应如下开始:/**/1([{“ID”:231,“title”:blahblahblah…),错误指向控制台中的“1” 这是我用来尝试获取数据并对其进行解析的代码: function get_posts(num_offset
/**/1([{“ID”:231,“title”:blahblahblah…
),错误指向控制台中的“1”
这是我用来尝试获取数据并对其进行解析的代码:
function get_posts(num_offset) {
offset = num_offset,
url = 'http://www.example.com/wp-json/posts?_jsonp=1&filter[posts_per_page]=5&filter[offset]=' + offset;
$.ajax({
type: 'GET',
dataType: "jsonp",
url: url,
success: function (data) {
consol.log(data);
console.log(url);
}
});
// second ajax call to get the total number of posts
$.ajax({
type: 'GET',
dataType: "jsonp",
url: 'http://www.example.com/wp-json/posts?_jsonp=1&filter[offset]=-1',
success: function (data) {
console.log(data);
}
});
}
我想我需要知道如何删除“uncaughttypeerror:number不是函数”错误,以及如何解析JSONP数据
非常感谢!您在URL中告诉另一端您的回拨名为
1
:
http://www.example.com/wp-json/posts?_jsonp=1&filter[offset]=-1
Here --------------------------------^^^^^^
实际上,WP-API pulgin使用了这个参数来将服务器MIME类型更改为application/json。因为这是插件中出现的代码:
$content\u type=isset($\u GET[''u jsonp'])?'application/javascript':'application/json';
@Narutkowski:我希望不是,这是错误的jsonp MIME类型(这是JSON mime类型;为JSONP提供服务的正确mime类型是application/javascript
,因为它实际上是一个javascript文件)。我怀疑这是端点用来知道它应该返回JSONP,并告诉端点使用什么回调名称的原因。因此,如果您尝试上面的方法,我怀疑它会解决问题。@Narutkowski:是的,它使用它来设置application/javascript
是否返回JSONP。但我怀疑如果您稍后再看,您会发现它还使用查询参数来决定在JSONP响应中使用什么函数名。例如,它既是一个标志(啊,我们应该返回JSONP)又是回调的名称(这是我们应该用于回调的名称)。这是在代码中,但是现在它在没有参数的情况下工作并返回jsonp。非常感谢您的帮助!啊,这一定是它工作的原因。以前,当我根本没有设置jsonp时,它抛出MIME类型错误。再次感谢!
$.ajax({
type: 'GET',
dataType: "jsonp",
url: 'http://www.example.com/wp-json/posts?&filter[offset]=-1',
// No _jsonp=1 here ------------------------^
jsonp: '_jsonp',
// ^^ new parameter here
success: function (data) {
console.log(data);
}
});