首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

jquery和ajax结合的跨域接口调用有关问题

2013-12-05 
jquery和ajax结合的跨域接口调用问题接口形式如下,当然是跨域调用的:http://210.34.215.70:81/hw_certinfo

jquery和ajax结合的跨域接口调用问题
接口形式如下,当然是跨域调用的:
http://210.34.215.70:81/hw_certinfo.php?accid=?&time=?&sn=?
在url加入正确的参数,会返回相应的数据,我在浏览器中直接输入url,会返回如下信息:
111122120101112212010某某某博士生M计算机科学与技术学院2012-09-072017-06-30002012控制科学与工程f83125aaaa2e36920784294458d354df1
但是通过如下方法调用,每次只能进入error回调函数,不能进入success,请教改如何修改?


function getStuInfo(){
if($("[name='apptmt.stuno']").val()=='')
return;
var today = new Date();
var todayStr = "" + today.getFullYear() + today.getMonth() + today.getDate();
//alert($.md5(todayStr+"JLTSG"+$("[name='apptmt.stuno']").val()));
var sn = "12345";
var url = "http://210.34.215.70:81/hw_certinfo.php?accid="
//+$("[name='apptmt.stuno']").val()+"&time="+todayStr+"&sn="+sn;
//alert(url);
//window.location.href=url;
var options = {
url: url,
dataType: "jsonp",
               jsonp: "callBack",
success:showStuInfo,
error:error
};
$.ajax(options);
}
jquery 跨域 php
[解决办法]
<!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>


[解决办法]
你这是调用接口吗 ? 接口不是这样传值的。

13
14
15
16
17
18
19
20
21
<script type="text/javascript">
$(function(){ 
    $('#weatherBtn').click(function() {
        var wsUrl = "http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx";
        var soap = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><getWeather xmlns="http://WebXml.com.cn/"><theCityCode>南昌</theCityCode><theUserID></theUserID></getWeather></soap:Body></soap:Envelope>';
        $.ajax({
            url:wsUrl,
            type:'POST',
            dataType:'xml',
            data:soap,
            success:function(){
                alert('success');
            },
            error:function() {
                alert('error');
            }    
        });
    });
}); 
 
</script>
[解决办法]
AJAX没办法跨域访问,但是可以用JSONP的方法,就是规定返回的JSON格式特殊处理一下,然后eval为java script对象。
[解决办法]
不用jsonp也可以。写一个servlet,设置response.setHeader("Access-Control-Allow-Origin", "*");也行。

热点排行