jquery REST风格的Web服务
粘贴以下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>
从客户端,你不能做成任何其他域的请求(甚至不是同一个域不同的端口,如:81),那么主机本身。这是same origin policy。
如果你想要实现这个认证,你需要在主机上运行AJAX帖子(应用运行的地方),应用程序本身需要将这个请求传播到你想要的地址 - 在你的情况下为metabolomics
。
收到答案后,您可以用任何方式回复客户端的ajax请求。
如果你真的要坚持你的JavaScript的格式有解决方法只是代理这样的请求,见Q: Make cross-domain ajax JSONP request with jQuery和Q: Ajax cross domain call
你会如何用jQuery调用这个web服务?我需要使用用户名和密码并获取Json文件。 – lochi 2013-02-21 19:54:46
阅读上面的答案。这不会起作用,因为默认情况下,浏览器限制您调用其他域。答案中的链接将有所帮助。 – 2013-02-21 20:04:13
您还可以使用$.getJSON(),不具有ploblem与“同根同源政策”。
它iquivalent到:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
退房这个问题:http://stackoverflow.com/questions/5507234/how-to-use-basic-auth-and-jquery-and-ajax – tmsimont 2013-02-21 19:20:27
ISN这是一个同样的原产地政策问题吗? http://en.wikipedia.org/wiki/Same_origin_policy – p1100i 2013-02-21 19:22:57