2013-02-21 504 views
0

粘貼以下URL以解決欄提示輸入用戶名和密碼。一旦通過身份驗證,它就會以json格式發送結果。 http://metabolomics.pharm.uconn.edu:2480/connect/iimdbjquery REST風格的Web服務

但是下面的代碼不起作用。結果警報「失敗」。我也努力編碼用戶名和密碼。有人能發現問題嗎?提前致謝。

<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 2013-02-21 19:20:27

+1

ISN這是一個同樣的原產地政策問題嗎? http://en.wikipedia.org/wiki/Same_origin_policy – p1100i 2013-02-21 19:22:57

回答

2

從客戶端,你不能做成任何其他域的請求(甚至不是同一個域不同的端口,如:81),那麼主機本身。這是same origin policy

如果你想要實現這個認證,你需要在主機上運行AJAX帖子(應用運行的地方),應用程序本身需要將這個請求傳播到你想要的地址 - 在你的情況下爲metabolomics

收到答案後,您可以用任何方式回覆客戶端的ajax請求。

如果你真的要堅持你的JavaScript的格式有解決方法只是代理這樣的請求,見Q: Make cross-domain ajax JSONP request with jQueryQ: Ajax cross domain call

+0

你會如何用jQuery調用這個web服務?我需要使用用戶名和密碼並獲取Json文件。 – lochi 2013-02-21 19:54:46

+1

閱讀上面的答案。這不會起作用,因爲默認情況下,瀏覽器限制您調用其他域。答案中的鏈接將有所幫助。 – 2013-02-21 20:04:13

0

您還可以使用$.getJSON(),不具有ploblem與「同根同源政策」。

它iquivalent到:

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