从不同的域加载网页
Load webpage from different domain
我正在 MVC 中创建一个示例项目。假设我有两个项目 A 和 B。在项目 A 中,我有一个 javascript 文件,它获取 project A
的索引页并将其放入 id Widget
的div 中。
project B
索引页中,我引用了项目 A 的 javascript 文件和一个 id Widget
的div
在页面加载时,我想将Project A's index page
加载到Project B's Widget Div
.
这是我的代码
Project A
Index.cshtml (Index view)
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<div id="data">Thi is index page.</div>
Widget.js (JavaScript file)
$(document).ready(function (e) {
$('#widget').load('/Home/Contact', function (response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
alert(msg + xhr.status + " " + xhr.statusText);
}
});
};
这是另一个项目
Project B
Index view which call the project A's index view
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="http://localhost:2455/Scripts/Widget.js"></script>
<div id="widget"></div>
<div>Project B Index</div>
上面的示例代码显示项目 B 的索引视图,而我想显示项目 A 的索引视图
如果没有完整的网址,它将无法按您想要的方式工作。要启用跨域请求,您需要向 web.config 添加 2 个标头
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="access-control-allow-headers" value="content-type"/>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>
<system.webServer>
或者另一种方式是在项目B的联系人控制器中向项目A的控制器发出http请求,然后您将获得项目A控制器的HTML,而没有CORS问题
第二个解决方案是
-
向本地控制器发出请求
-
在本地控制器对代码的调用中,此代码向某个 url 发出请求,并返回从该 url 检索到的所有内容。
var html = ""; StreamReader reader = null; WebResponse response = null; try { var request = WebRequest.Create("url of project A controller"); response = request.GetResponse(); var dataStream = response.GetResponseStream(); reader = new StreamReader(dataStream); //here you will get HTML of controller from project A html = reader.ReadToEnd(); } finally { if (reader != null) { reader.Close(); } if (response != null) { response.Close(); } } ViewBag.HTML = html;//And then you can use the HTML inside of current controller, simply put @ViewBag.HTML inside of the div.
- 仅重新加载网页的一部分
- 每次提交表单时都会重新加载网页
- 如何在加载网页时运行脚本
- 如何知道用户已经重新加载了网页,使用jquery.如果用户重新加载网页,
- 如何在javascript中点击按钮重新加载网页,但在重新加载后调用函数
- VBA加载网页并提取内存中的数据
- 当移动设备从睡眠状态唤醒时重新加载网页
- 如何在加载网页时隐藏元素
- 加载网页's主加载后的内容
- 一段时间后使用Javascript加载网页ASP.net
- 使用JavaScript更新网页,无需重新加载网页
- 停止以编程方式加载网页
- 使用ajax调用在mysql表更新上重新加载网页
- 从缓存加载网页时未执行Javascript
- 角度和加载网页的正确方式
- 阻止IE用户加载网页
- 定期重新加载网页,但前提是页面可用
- 仅当页面大小更改时重新加载网页
- 模板函数在加载网页时运行两次
- 如何在不使用 PHP/AJAX 重新加载网页的情况下自动更新内容