日期:2014-05-16  浏览次数:20737 次

关于使用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操作,要