2013-02-21 6 views
0

Вставка следующего URL-адреса в адресную строку подсказки для имени пользователя и пароля. После аутентификации он отправляет результаты в формате json. http://metabolomics.pharm.uconn.edu:2480/connect/iimdbjQuery веб-служба RESTful

Однако следующий код не работает. Результаты в предупреждении «не удались». Я также пытался жестко кодировать имя пользователя и пароль. Может кто-то определить проблему. Заранее спасибо.

<script type="text/javascript" src="jquery-1.9.1.min.js"></script> 
     <script type="text/javascript"> 
     $(document).ready(function(){ 
      var userName = $('#username').val(); 
      var password = $('#password').val(); 
      var submitButton = $('#submitButton'); 
      submitButton.click(function(){ 
    $.ajax({ 
     type: 'Get', 
    url : 'http://metabolomics.pharm.uconn.edu:2480/connect/iimdb', 
    dataType : 'json', 
     username : userName, 
     password : password, 
    success : function(data) { 
     alert("success"); 
     response(data); 
    }, 
     error : function() 
     { 
     alert("failed"); 
     } 
}); 
    }); 
     }); 
     </script> 
+1

проверить этот вопрос: http://stackoverflow.com/questions/5507234/how-to-use-basic-auth-and-jquery-and-ajax – tmsimont

+1

ISN Это одна и та же проблема происхождения? http://en.wikipedia.org/wiki/Same_origin_policy – p1100i

ответ

2

Со стороны клиента вы не можете сделать запрос в других областях (даже не одинаковые домены другой порт, как: 81), то сам хозяин. Это same origin policy.

Если вы хотите, чтобы эта аутентификация была реализована, вам необходимо направить сообщение AJAX на ваш хост (где выполняется приложение), и самому приложению необходимо распространить этот запрос на нужный адрес - в вашем случае - metabolomics.

После получения ответа вы можете ответить на запрос ajax клиентов любым способом.

Если вы действительно хотите придерживаться своего формата JavaScript есть обходной путь только прокси таких запросов см Q: Make cross-domain ajax JSONP request with jQuery и Q: Ajax cross domain call

+0

Как вы называете этот веб-сервис с помощью jQuery? Мне нужно использовать имя пользователя и пароль и получить Json-файл. – lochi

+1

Прочтите ответ выше. Это не сработает, потому что браузеры по умолчанию запрещают вам звонить в другие домены. Ссылки в ответе помогут. –

0

Вы можете также использовать $.getJSON(), который не имеет ploblem с «того же происхождения политика».

Это iquivalent к:

$.ajax({ 
    dataType: "json", 
    url: url, 
    data: data, 
    success: success 
});