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

关于AJAX跨站点访问有关问题

2013-06-19 
关于AJAX跨站点访问问题平时用ajax都是一个项目下面用相对路径,我想试下把它url改成其他站点会怎么样。所以

关于AJAX跨站点访问问题
平时用ajax都是一个项目下面用相对路径,我想试下把它url改成其他站点会怎么样。所以我在本地建了2个网站,用ajax去访问另外一个站点的文件,调试的确执行了另外一个站点的文件,然后返回输出结果,但是获取的结果为空,这怎么回事,怎么去访问另外一个站点然后得到输出结果呢?这就是所谓的ajax跨域访问吗?
  <script>
        $(document).ready(function () {
            $("#btn").click(function () {
                $.ajax(                        {
                            url: "http://localhost:9507/WebSite1/ashx/Handler.ashx",
                            success: function (data) {

                                alert(data.toString());
                            }
                        });
            });

        });
    </script>
[解决办法]
url: "AjaxGeturl.aspx?url=http://localhost:9507/WebSite1/ashx/Handler.ashx",

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml;
using System.Net;
using System.IO;
using System.Text;
namespace NetCMS.Web
{
    public partial class AjaxGeturl : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string url = string.Empty;
                url = Request.QueryString["url"];
                Response.Write(GetResStr(url, "utf-8"));
                Response.End();
            }


        }
        string GetResStr(string url, string Encod)
        {
            WebRequest WReq;
            WebResponse WResp;
            StreamReader sr;
            WReq = WebRequest.Create(url);
            WResp = WReq.GetResponse();
            sr = new StreamReader(WResp.GetResponseStream(), Encoding.GetEncoding(Encod));
            string retValue = sr.ReadToEnd();
            sr.Close();
            return retValue;
        }
    }

}
[解决办法]
这个就是传说中的跨域访问。

浏览器为了保护其他网站的资源(服务)而采用的保护措施。

可以跨域,只有做服务端允许就行。
[解决办法]
Ajax不允许跨域,就算用Iframe加载了跨域的站点也不用修改其dom,如果你这里要做我这里提供一个思路,
编写一个 跨域页面通过调用WebClient把目标页下载下来, 输出 ,Ajax请求我的跨域加载的页面获取输出html
. 我之前有试过 次方法可行 不过效果也一般.

热点排行