请问如何用jquery调用 java的接口?

恰好 2013-11-10 10:33:56
对方接口地址是:http://IP:端口/Interface.do,要求post方式传递参数
我用以下方式,根本没返应,
<script type="text/javascript" >
$(document).ready(function ()
{
$('#test_post').click(function (){
$.post('http://IP:端口/Interface.do',{username:'aaa',password:'23'},
function (data){
alert(data);
}, 'html'
);
});
});
</script>
</head>
<body >
<a href="#" id="test_post">查询</a>
</body>

单独在浏览器中执行 http://IP:端口/Interface.do,可以正常输出结果,但就是在以上这个jquery里没返回,若把对方的地址换成我本地的测试文件,如interface.asp(内容与直接执行相同)就可以正常执行。
请问应该怎么办?网上查了资料,也没找到答案
...全文
609 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
恰好 2013-11-11
  • 打赏
  • 举报
回复
版主,我查了一些资料,上面说jQuery是没法支持跨域post提交的。
teemai 2013-11-11
  • 打赏
  • 举报
回复
引用 3 楼 goolean 的回复:
<script type="text/javascript" > $(document).ready(function () { $('#test_post').click(function (){ $.ajax({ type: "POST", url: "http://IP:端口/Interface.do", dataType:"html", data: {'username':'aaa','password':'23'}, success: function(data){ alert(data); }, error:function(){ alert($("#content" + i)+"加载失败"); } }); }); }); </script> 一样毫无反映
用火狐的firebug看下,ajax请求是否请求了。也有可能是服务器端出错了
tony4geek 2013-11-11
  • 打赏
  • 举报
回复
有没有跨域啊。 浏览器窗口直接 http://IP:端口/Interface.do 可以访问不 打印错误信息 error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); },
恰好 2013-11-11
  • 打赏
  • 举报
回复
<script type="text/javascript" > $(document).ready(function () { $('#test_post').click(function (){ $.ajax({ type: "POST", url: "http://IP:端口/Interface.do", dataType:"html", data: {'username':'aaa','password':'23'}, success: function(data){ alert(data); }, error:function(){ alert($("#content" + i)+"加载失败"); } }); }); }); </script> 一样毫无反映
tony4geek 2013-11-11
  • 打赏
  • 举报
回复
如果非要操作的话,就得生成代理 。把他的xml生成到自己这边,然后再操作。给个链接了解下吧
恰好 2013-11-11
  • 打赏
  • 举报
回复
或者换个角度,象这类输出结果为xml的接口,应该用哪种方法去调用?
恰好 2013-11-11
  • 打赏
  • 举报
回复
服务端是固定的,我这边没办法,呵
恰好 2013-11-11
  • 打赏
  • 举报
回复
哦,我看你的例子地址http://www.geonames.org/postalCodeLookupJSON 返回的是 json 的格式结果,那么对于xml的,有办法吗?
tony4geek 2013-11-11
  • 打赏
  • 举报
回复
转换错了,上面说了。你返回的是xml,服务端改成类似json 的格式试试。 要不服务端写成个 webservice
恰好 2013-11-11
  • 打赏
  • 举报
回复
首先感谢rui888 一直关注本贴,不过,把URL地址换成http://221.123.158.108/2.asp ,就只执行error: function{}的部分,是怎么回事?
tony4geek 2013-11-11
  • 打赏
  • 举报
回复
如果返回的是xml 你用jquery 的jsonp 不可以,它只支持回调json 的格式 。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html>    
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <title>
            查询
        </title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
        </script>
        <script type="text/javascript">
            jQuery(document).ready(function() {
                $.ajax({
                    type: "get",
                    async: false,
                    data: {
                        "postalcode": "10504",
                        "country": "US"
                    },
                    url: "http://www.geonames.org/postalCodeLookupJSON",
                    dataType: "jsonp",
                    jsonp: "callback",
                    success: function(json) {
                        var data = json.postalcodes[0];
                        for (var e in data) {
                            alert(e + "--->" + data[e])
                        }
                    },
                    error: function(XMLHttpRequest, textStatus, errorThrown) {
                        alert(XMLHttpRequest.status);
                        alert(XMLHttpRequest.readyState);
                        alert(textStatus);
                    }

                });

            });
        </script>
    </head>
    
    <body>
        <a href="#" id="test_post">
            查询
        </a>
    </body>

</html>
恰好 2013-11-11
  • 打赏
  • 举报
回复
等高人出现给个能实现的例子,无论哪种方法,jquery或js
恰好 2013-11-11
  • 打赏
  • 举报
回复
完全实现不了
___________小P 2013-11-11
  • 打赏
  • 举报
回复
实现了么
恰好 2013-11-11
  • 打赏
  • 举报
回复
这次不用jquery,直接用ajax代码 function opp(){ if(window.XMLHttpRequest) { isIE = false; xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) { isIE = true; xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } try { xmlhttp.open("POST","http://221.123.158.108/2.asp",false); xmlhttp.send(null); } catch(e) { alert(e);//这里在ie下不执行,在其它浏览器显示 Error:NETWORK_ERR:XMLHttpRequest Excption 101 } var xmlDoc = xmlhttp.responseXML.documentElement; alert(xmlDoc); //这里在IE下执行显示结果为 null var x=xmlDoc.getElementsByTagName("taskcode")[0].nodeValue;; alert(x); }
恰好 2013-11-11
  • 打赏
  • 举报
回复
直接执行http://221.123.158.108/2.asp接口的结果: <?xml version="1.0" encoding="UTF-8"?> <result> <resultcode>0</ resultcode > <taskcode>20130213231023</taskcode> <errordescription>okokok</errordescription> </result>
恰好 2013-11-11
  • 打赏
  • 举报
回复
肯定是可以的,对方给出的是xml格式的结果
api工厂 2013-11-11
  • 打赏
  • 举报
回复
要对方server端支持跨域调用AJAX才可以的,否则不行的
恰好 2013-11-11
  • 打赏
  • 举报
回复
我觉得现在问题不是参数传递的事。
恰好 2013-11-11
  • 打赏
  • 举报
回复
引用 10 楼 rui888 的回复:
{"id":1,"name":"xxxx"} 你返回这样的格式试试看。
怎样写返回这个?
加载更多回复(7)

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧