2015-07-14 4 views
0

Я пытаюсь получить базовый JSONP запрос собирается:Синтаксическая ошибка обратного вызова = jQuery1113

<html> 
    <head> 
     <script type="text/javascript" src="js/jquery1.js"></script> 
     <script> 
      $(document).ready(function(){ 
       $.ajax({ 
        url: 'http://www.bing.com/', 
        dataType: 'jsonp', 
        success: function(dataWeGotViaJsonp){ 
         var text = ''; 
         var len = dataWeGotViaJsonp.length; 

         $('#text').html(len); 
        } 
       }); 
      }) 
     </script> 
    </head> 
    <body> 
     <div id = 'text'></div> 
    </body> 
</html> 

Я использую IE8 и Jquery v1.11.3

Syntax error ?callback=jQuery111309915726215071462_1436849961686&_=1436849961687, line 1 character 1 

Что такое обратный вызов? Откуда он?

Если изменить URL на 'https://www.bing.com/search?q=hello+world'

я получаю:

Syntax error search?q=hello+world&callback=jQuery11130544191867791898_1436850255384&_=1436850255385, line 1 character 1 
+1

Ваш браузер пытался выполнить сценарий получил от Bing, но Bing не послал сценарий, но веб-страницы. Это как заказать что-то горячее, а затем попытаться съесть его, запоздало осознавая, что вы не в ресторане, а в магазине оборудования, когда вы таете свое лицо с помощью паяльной лампы. Вы не можете получить JSONP от Bing только за счет желаемого за действительное - прочитайте о [Bing Search API] (https://datamarket.azure.com/dataset/5BA839F1-12CE-4CCE-BF57-A49D98D29A44). – Amadan

+0

@Amadan Хорошо, ваш комментарий какой-то смешной, но и немного недружелюбный. – dwjohnston

+0

Извините. Пошел смешно. Однако неплохая аналогия - вы пытаетесь использовать ответ, который не удобоваримый парсером JS. Всегда проверяйте содержимое URL с помощью, например. 'curl' или веб-браузер - если он не получает JSONP таким образом, ни ваш код (если только они не делают скрытые вещи, чтобы предотвратить его). Что касается '? Callback = jQuery ......', он привязан к вашему URL-адресу jQuery в качестве условного обозначения; серверы, которые обслуживают JSONP, обычно используют его для создания вашего ответа. Поэтому консоль просто сообщает вам URL. – Amadan

ответ

0
<html> 
     <head> 
      <script type="text/javascript" src="js/jquery1.js"></script> 
      <script> 
       $(document).ready(function(event){ 
       if (event.preventDefault) { 
      event.preventDefault(); 
     } 
     else { 
      event.returnValue = false; 
     } 
        $.ajax({ 
         url: 'http://www.bing.com/', 
         dataType: 'jsonp', 
         success: function(dataWeGotViaJsonp){ 
          var text = ''; 
          var len = dataWeGotViaJsonp.length; 

          $('#text').html(len); 
         } 
        }); 
       }) 
      </script> 
     </head> 
     <body> 
      <div id = 'text'></div> 
     </body> 
    </html> 

// Использование event.preventDefault.

0

Изменение dataType: 'jsonp' в dataType: 'text'

+0

Это не дает ответа на вопрос. Чтобы критиковать или просить разъяснения у автора, оставьте комментарий ниже их сообщения. – shruti1810

+0

Если вы не запустили этот код, и он не работает, это мой ответ, и я придерживаюсь его! –

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