如何在jQuery ajax调用上将JSON响应解析为JSONP?

时间:2016-10-28 05:50:06

标签: javascript jquery json ajax jsonp

我正在处理todoist API(https://developer.todoist.com/),我正在用这个来制作一个jquery ajax get请求一些数据:

var url = "https://todoist.com/API/v7/sync";
var data = {
    'token' : token,
    'resource_types' : '["all"]',
    };


$.ajax({
    url: url,
    data: data,
    type: 'GET',
    dataType: 'jsonp',
    success: function(response) { 

        console.log(response);

    },
    error: function(response) { 
        console.log('error');
    },
});

现在,当我收到回复时,我收到了错误

Unexpected token :

为什么呢?因为根据(https://stackoverflow.com/a/7941973/2724978)jQuery期望一个jsonp格式的响应,但它返回json。

我已经研究了如何解决这个问题,响应将是:“以jsonp格式返回数据”......好吧。它是一个外部API,它们不提供JSONP中的数据。有没有办法可以覆盖返回的函数并解析这个JSON数据呢?

2 个答案:

答案 0 :(得分:0)

您的dataType应为json,而不是jsonp

答案 1 :(得分:0)

正如elektronik指出的那样,dataType应该是$('.choixvol').click(function() { var id = "testid"; $.ajax({ type: 'POST', url: 'vol.php', data: {id: id}, success: function() { window.location.href = "vol.php?id=" . $id; }, }); }); <?php require'header_fr.php'; logged_only(); if(isset($_POST['id'])){ //Do something with your post ID when using the post method } if(isset($_GET['id'])){ //Do something with your GET ID when redirected back with the GET method $id = $_GET['id']; } ?> <div id="container"class="container"> <div class="form-wrap text-center"> <?php echo $id ?> </div> </div> <?php require'footer_fr.php'; ?> 而不是json。代码看起来如下......

jsonp