2013-11-21 4 views
-4

Я работаю над фрагментом кода, где пользователь нажимает кнопку, чтобы позвонить, и статус вызова отображается ему/ей.Получение Uncaught SyntaxError: Неожиданный токен: при чтении ответа jsonp

Все работает нормально, и вызовы также выполняются, но сервер, который отправляет ответ json, находится в другом домене, и я не могу контролировать его ответ. Поэтому я использовал jsonp, чтобы получить ответ, но независимо от того, что я сделал, я продолжаю получать ошибку Uncaught SyntaxError: Неожиданный токен.

Я прикрепляю код. пожалуйста, помогите, поскольку это живой проект, и я сильно застрял в нем. Мне нужен ответ, чтобы получить предупреждение с сообщением, полученным сервером. сообщение, полученное сервером в случае успеха, равно {"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; 
    } 
} 
+0

Что вы получаете обратно от удаленного сервера, вы можете использовать скрипач и искать ответ, чтобы увидеть, что его возвращает, и если оно в ожидаемом формате. Также почему вы кодируете & между параметрами запроса –

+0

ответ в предупреждении, который я получаю, это {«readyState»: 4, «status»: 200, «statusText»: «load»}, а консоль в Chrome предоставляет error Uncaught SyntaxError: Неожиданный токен:. Кодировка URI для & amp - это потому, что тот же самый я получил от серверной компании. если я нажимаю на ссылку www.knowlarity.com/:1, показанную на консоли, вместе с этой ошибкой, я получаю текст успеха {«успех»: {«статус»: «успех», «сообщение»: «успешно выполнен вызов «}}. – user3017228

+0

Также, когда я тестировал URL-адрес в JSONLint, валидатор выдал результат как действительный JSON. выход был { «Успех»: { «статус»: «Успех», «сообщение» : «Вызов успешно разместило» } } – user3017228

ответ

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); 
    } 
}); 
+0

Я заменил свой код на тот, который вы отправляете, но та же ошибка. консоль в инструменте разработчика говорит Uncaught SyntaxError: Неожиданный токен: на вкладке «Сеть» отображается URL-адрес http://www.knowlarity.com/vr/api/click2call/?api_key=9e69eab0-1ec7-11e3-866c-12314104aa4&agent_number=%2B919897909999&phone_number= % 2B919997333227 & sr_number =% 2B918881692001 & response_format = json & callback = jQuery203011996779055334628_1385041995607 & _ = 1385041995608 с методом GET и статусом 200 OK, раздел заголовка в порядке, предварительный просмотр показывает успех: {статус: успех, сообщение: успешно выполнен}} и ответ тоже показывает успех – user3017228

+0

НО, несмотря на все выше ошибка все еще существует, и раздел успеха никогда не достигается ... – user3017228

+0

Я подозреваю, что сервер, на котором я отправляю запрос, не поддерживает JSONP. что я делаю в таком случае.? – user3017228

Смежные вопросы