如何使用MVC + AJAX从第三方网站正确加载HTML数据?

时间:2010-04-18 05:57:45

标签: asp.net-mvc ajax

我正在构建ASP.NET MVC2网站,该网站允许用户存储和分析各种在线交易网站上发现的商品数据。当用户填写表单以创建或编辑项目时,他应该有一个“导入数据”按钮,该按钮会根据第三方网站的数据自动填充某些字段。

问题是:这个按钮应该在引擎盖下做什么?

我看到至少有两种可能的解决方案 首先。使用AJAX + jQuery load方法在客户端进行导入 我在IE8中尝试过,并收到有关不安全脚本操作的浏览器警告弹出窗口。当然,这是完全不可接受的 第二。将方法ImportData(string URL)添加到ItemController课程。它通过AJAX调用,导入+数据处理服务器端并将JSON-d结果返回给客户端 在将HTML数据加载到(503) Server unavailable时,我尝试了它并收到了服务器异常XMLDocument。此外,我有一种感觉,处理不完善的HTML(缺少结束标签等)将是一个巨大的痛苦。有关如何解析此类HTML文档的任何想法吗?

2 个答案:

答案 0 :(得分:0)

不幸的是,你不能在不使用JSONP的情况下跨站点加载任何JavaScript。这是一个安全问题。您最好的选择是向AJAX请求您的某个控制器操作并让它执行Web请求并将结果返回给客户端。

就503服务器不可用而言,每次请求都会发生这种情况吗?听起来你正在从WoW Armory解析信息。他们限制网络请求,并会在一段时间后禁止你。

答案 1 :(得分:0)

使用http://htmlagilitypack.codeplex.com/处理服务器上的HTML。或者正则表达式。或者string.IndexOf。或者通过Interop库导入MSHTML并使用它。不要将HTML加载到XML文档中,除非您完全确定它是纯XHTML。

此外,尝试查看第三方网站是否提供对数据的更直接访问 - XML,REST,Web服务。