【问题标题】:call a page within subdomain using ajax使用ajax调用子域内的页面
【发布时间】:2013-03-06 23:32:50
【问题描述】:

我需要使用 ajax get 读取子域上的页面内容。 我想在我的子域上创建一些脚本并在我的域上调用该脚本。但是我不知道该怎么做。

有可能做这样的事情吗?如何?

编辑:

我在我的域中创建了一个页面,该页面使用 DownloadString 并下载该页面并记下结果。有更好的主意吗?

【问题讨论】:

  • 现在发生了什么?除非您使用 jsonp,否则浏览器会阻止跨域 ajax,但不应阻止对子域的调用
  • 对子域的调用也被阻止。我可以在我的子域上做任何事情,但不知道该怎么做
  • 调用子域仍然会被阻止,子域不是同源的。最简单的跨浏览器解决方案是使用 JSONP
  • 是的,您有什么建议吗?
  • 这篇文章之前对我有帮助:jquery4u.com/json/jsonp-examples

标签: c# jquery asp.net ajax


【解决方案1】:

如果您希望支持跨域 AJAX 请求,则需要创建一个跨域资源共享处理程序 (CORS)。我没有特定于 asp.net 的示例,但如果您使用的是 MVC,这很容易实现(并且对于 WebForms 基本相同)。

可以在此处找到一个 Web API 示例来帮助您入门: CorsHandler.cs

另外,如果您需要支持 IE 7、8 或 9,您可能需要查看 jQuery 扩展库,例如 jQuery-ajaxTransport-XDomainRequest

编辑

如果你想看一个完整的例子(不幸的是 Web API),这里有一篇 MSDN 文章,里面有一个完整的代码示例Implementing CORS support in ASP.NET Web APIs

【讨论】:

    【解决方案2】:

    您有时也可以在 JS 中操作 document.domain。因此,如果您从 www.site.com 提供页面,并且您的 Ajax 服务托管在 app.site.com,请将您的 document.domain 设置为 site.com。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2012-02-08
      • 2012-08-28
      • 1970-01-01
      • 2010-12-11
      • 1970-01-01
      相关资源
      最近更新 更多