2013-02-21 135 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 
}); 
相关问题