Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UncaughtTypeError:在jQueryAjax调用中解析JSONP响应时,number不是函数_Javascript_Jquery_Ajax_Wordpress_Jsonp - Fatal编程技术网

Javascript UncaughtTypeError:在jQueryAjax调用中解析JSONP响应时,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

我正在尝试使用WP-API插件从wordpress博客中获取数据。我的js文件使用jQuery对api进行ajax调用。我需要使用JSONP作为响应类型,因为我正在尝试访问跨域信息

当页面加载时,我得到一个错误“UncaughtTypeError:number不是函数”,我的响应如下开始:
/**/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);
    }
});