关于使用jquery ajax调用asp.net HttpHandler出现的有关问题,求达人

关于使用jquery ajax调用asp.net HttpHandler出现的问题,求达人
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function bbb() {
            $.ajax({
                type: "POST",
                url: "http://localhost:10475/Handler1.ashx",
                success: function (result) {
                    alert(result)
                }
            });
        }
    </script>
</head>
<body>
<input type="button" value="aaa" onclick="bbb()"/>
</body>
</html>

上面一个页面,如果和Handler1.ashx在一个站点下,是可以alert的。


Request URL:http://localhost:10475/Handler1.ashx
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:0
Host:localhost:10475
Origin:http://localhost:10475
Referer:http://localhost:10475/HTMLPage1.htm
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
X-Requested-With:XMLHttpRequest
Response Headersview source
Cache-Control:private
Connection:Close
Content-Length:11
Content-Type:text/plain; charset=utf-8
Date:Wed, 06 Nov 2013 08:10:57 GMT
Server:ASP.NET Development Server/10.0.0.0
X-AspNet-Version:4.0.30319


但是如果放在别的站点,就访问不了。


Request URL:http://localhost:10475/Handler1.ashx
Request Headersview source
Accept:*/*
Origin:http://localhost:10488
Referer:http://localhost:10488/HTMLPage1.htm
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36


不知道是jquery 还是 asp.net 的问题。

------解决方案--------------------
是浏览器安全的问题,ajax不能直接请求跨域的页面

跨域了可以使用JSONP操作,要么就需要做代理页面

楼主去了解下这2种兼容性最好的方法
------解决方案--------------------
Request URL:http://localhost:10475/Handler1.ashx
Request Headersview source
Accept:*/*
Origin:http://localhost:10488


端口不一致也算跨域,IE8下端口不一致不算,IE9+没测试,不知道算不算
------解决方案--------------------
改用JSONP就好了,jsonp就是动态插入script标签加载指定的url,指定的url接受回调函数名称并输出js代码执行回调函数传递数据

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
        function bbb() {
            $.ajax({
                type: "GET",
                dataType: 'jsonp',
                url: "http://www.coding123.net/jsonp.asp?callback=?",
                success: function (result) {
                    alert(result);
                }
            });