2013-09-23 2 views
-1

Я пытаюсь сделать простой вызов веб-API внутри HTML-страницы с помощью ajax (при нажатии кнопки). но этот вызов всегда терпит неудачу. Проблема заключается только в вызове ajax (при нажатии кнопки) для этого API. загрузка в combobox работает отлично. Поэтому я надеюсь, что это не должно быть проблемой с перекрестными доменами.Ajax вызов веб-службы Aways Fails

Ниже приводится код, где он вызывает проблемы:

<body> 

    <a class="offline-button" href="../index.html">Back</a> 
    <input id="btnSayHello" type="button" value="Get Value From Ajax" /><br /> 

    <div id="example" class="k-content"> 

     <div class="demo-section"> 
      <h2>Products</h2> 
      <input id="products" style="width: 250px" /> 
     </div> 

     <script> 
      $(document).ready(function() { 
       $("#products").kendoDropDownList({ 
        //dataTextField: "Name", 
        //dataValueField: "Name", 
        dataTextField: "ProductName", 
        dataValueField: "ProductID", 
        dataSource: { 
         transport: { 
          read: { 
           dataType: "jsonp", 
           url: "http://demos.kendoui.com/service/Products", 
          } 
         } 
        } 
       }); 
      }); 

      $(function() { 

       $("#btnSayHello").click(function() { 
        $.ajax({ 
         type: "GET", 
         contentType: "jsonp", 
         //contentType: "application/json; charset=utf-8", 
         dataTypes: "jsonp", 
         processdata: true, 
         data: {}, 
         url: "http://demos.kendoui.com/service/Products", 
         success: function (data) { 
          alert("Success"); 
         }, 
         error: function (result) { 
          window.alert(result.responseText); 
         } 
        }); 
       }) 
      }); 
     </script> 

Для кнопки нажмите кнопку в Ajax вызова responseText возвращает «неопределенный»

же URL для вызова документа готов функции работает отлично. и заполнить это ComboBox.

ИСТОЧНИК КОДА можно найти на этом link.

Спасибо всем за вашу помощь!

+0

Мы не будем загружать и отлаживать ваш проект. * Вам нужно будет указать источник ошибки и показать соответствующий код здесь. _ «Надеюсь, это не проблема с перекрестным доменом» _ - что вы сделали, чтобы проверить это? Попробуйте [Fiddler] (http://fiddler2.com/), чтобы проверить запрос и ответ, посмотрите в консоли своего браузера, чтобы узнать, что происходит. – CodeCaster

+0

Пожалуйста, покажите код и объясните, каким образом он терпит неудачу. Не делает ли это вызов AJAX вообще? Ответит ли сервер на ошибку? Есть ли ошибка JavaScript? – David

+0

Спасибо CodeCaster и David. Я обновил исходный контент. Ошибка javascript отсутствует. Но вызов этой функции вызывает возврат к функции ошибки в скрипте. Plz сообщите мне, если потребуется больше материалов .. – nishantcop

ответ

0

Хорошо, я получил мой ответ, и проблема из-за "Datatypes" ключевое слово. Я изменил его на «dataType», и он сработал.

Ну, я новичок в веб-технологиях, и изначально я попытался разработать тот же код на странице aspx, где «dataTypes» работает просто отлично. Поэтому я попытался использовать такую ​​же базу кода в обычном HTML-файле, и это не сработало.

Таким образом, вывод о том, что может быть несколько отличается лечение «Datatypes» в ASPX страницы как по сравнению с HTML5.

1

Вы можете видеть это, я думаю, что он решает вашу проблему, попробуйте отправить некоторое дублирующее значение как queryparam с помощью обратного вызова.

$(document).ready(function(){ 
     $("#btnSayHello").click(function() { 
        $.ajax({ 
         type: "GET", 
         url: "http://demos.kendoui.com/service/Products?callback=123", 
         dataType: "jsonp", 
         success: function (data) { 
          alert("Success"+JSON.stringify(data)); 
         }, 
         error: function (result) { 
          alert("error:"+result.responseText); 
         } 
        }); 


     }); 
     }); 

http://jsfiddle.net/nPeaV/7370/

+0

Да, действительно, это решает проблему. Не могли бы вы помочь мне понять первопричину. Чтобы я мог избежать этого в будущем. Я заметил, что вы явно определились в функции готовности документа. Хотя, я не очень-то уверен в том, что это за изменения. и, во-вторых, вы добавили «? callback = 123», что это значит? Хотя, он отлично работает без этого (повторяющиеся значения обратного вызова), нужно только изменить этот «материал для подготовки документов». Спасибо за ваше время и снова помогите. – nishantcop