2015-05-24 2 views
0

Это должно быть очень просто. Я прочитал много сообщений о потреблении перекрестного домена веб-сервиса и использовании JSONP, но есть кое-что, чего я не вижу.Потребление WebService в кросс-домене

Если я позвоню следующий URL-адрес в WebBrowser, я могу получить свой результат: http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?

Употреблять его с помощью JQuery, я использую:

$(document).ready(function() { 
     var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio"; 
     $.ajax({ 
      type: 'POST', 
      url: surl, 
      dataType: "jsonp", 
      success: function(msg) { 
       alert(msg.data); 
      }, 
      error: function(xhr, status, error) { 
       alert("error"); 
      } 
     }); 
    }); 

Вот JS Fiddle

Но я продолжаю получать ошибку? В чем проблема?


UPDATE

я могу получить содержимое URL с помощью следующего кода (взятый из here)

$(document).ready(function() { 


     var theUrl = "http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?"    

      if (window.XMLHttpRequest) 
      {// code for IE7+, Firefox, Chrome, Opera, Safari 
       xmlhttp=new XMLHttpRequest(); 
      } 
      else 
      {// code for IE6, IE5 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      xmlhttp.onreadystatechange=function() 
      { 
       if (xmlhttp.readyState==4 && xmlhttp.status==200) 
       { 
        alert(xmlhttp.responseText); 
       } 
      } 
      xmlhttp.open("GET", theUrl, false); 
      xmlhttp.send();  


    }); 

Пожалуйста, обратите внимание на JS Fiddle

+0

Это веб-службы .NET SOAP, который возвращает XML. Сервер не настроен для возврата JSONP и сработает, если вы попробуете. Обходным путем является использование прокси-сервера, такого как Yahoo YQL, для вызова веб-службы, а затем возврата данных в формате json или xml. См.: [Yahoo YQL] (https://developer.yahoo.com/yql/guide/running-chapt.html) – Roberto

ответ

0

я мог бы сделать Это. Я нашел этот вопрос here, который дал мне указания.

Основная проблема заключается в том, что я получал результат XML вместо JSON. Чтобы изменить это, мне пришлось добавить строку contentType: "application/json; charset=utf-8".

Окончательный код выглядит следующим образом:

$(document).ready(function() { 
    var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio"; 
    $.ajax({ 
     url: surl, 
     contentType: "application/json", 
     dataType: "json", 
     success: function (json) { 
      alert(json.d); 
     }, 
     error: function (xhr) { 
      alert("ERRO"); 
     } 
    }); 
}); 

JS Fiddle

+0

Пример возвращает ошибку и не работает. – Roberto

+0

@Robert, он работает. Проблема в том, что я вставил неправильную ссылку. Благодарю. – Nizam

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