获取未捕获的SyntaxError:意外的令牌:读取jsonp响应时

时间:2013-11-21 11:26:01

标签: javascript asp.net json jsonp

我正在编写一段代码,用户点击按钮拨打电话,并向他/她显示通话状态。

一切正常,调用也在进行,但发送json响应的服务器在另一个域上,我无法控制其响应。因此我使用jsonp来获取响应,但无论我做了什么,我都会收到 Uncaught SyntaxError:Unexpected token 的错误。

我附上了我的代码。请帮助,因为这是一个现场项目,我很困难。我需要一个响应来提醒服务器收到的消息。如果成功,服务器收到的消息为{"success": {"status": "success", "message": "Call successfully placed"}},如果出现错误,则为{"error": {"message": "Invalid API Key"}}。我只需要显示消息部分。

我的代码:

function makecall() {
    document.getElementById('<%=click2call_submitbtn.ClientID%>').disabled = true;
    var agentNum = document.getElementById('<%=lblCallFrom.ClientID%>').innerHTML;
    var custNum = "+91";
    custNum = custNum + document.getElementById('<%=txtNotoCall.ClientID%>').value;
    document.getElementById('<%=lblCallStatus.ClientID%>').innerHTML = "Calling...";
    if (validatePhone(agentNum) && validatePhone(custNum)) {

        $.ajax({
            url: 'http://www.knowlarity.com/vr/api/click2call/?api_key=9e69eab0-1ec7-11e3-866c-16829204aaa4&amp;agent_number=agent_number_variable&amp;phone_number=Caller_number_variable&amp;sr_number=%2B918881692001&amp;response_format=json'.replace('Caller_number_variable', custNum.replace('+', '%2B')).replace('agent_number_variable', agentNum.replace('+', '%2B')),
            type: 'GET',
            cache: false,
            dataType: 'jsonp',
            success: function (res) {
                alert(JSON.stringify(res));
            },
            error: function (res) {
                alert(JSON.stringify(res));
            }
        });

    } else {
        document.getElementById('<%=lblCallStatus.ClientID%>').innerHTML = "Num. should be a valid 10 digit mobile no.";
        document.getElementById('<%=click2call_submitbtn.ClientID%>').disabled = false;
    }
}

1 个答案:

答案 0 :(得分:0)

尝试将此作为绝对最小值,您可以为数字传递有效的硬连线值:

var url = 'http://ip.jsontest.com/ ';

$.ajax({
    url: url,
    cache: false,
    dataType: 'jsonp',
    success: function (res) {

        if (res != undefined) console.log(res);
    },
    error: function (res) {

        if (res != undefined) console.log(res);
    }
});