0

我有两个站点,一个是用 asp.net webforms 编写的,另一个是用 asp.net mvc 2 编写的。我在 webforms 中有一个页面,它使用 jQuery Load 从两个项目中获取数据。

来自asp.net webforms页面的代码:

$("#divFeedsPorTagMVC").load('http://localhost:50001/InfoMVC/?tag=java', function (){});

$("#divFeedsPorTagWebForms").load('http://localhost:50000/InfoWebForms.aspx?tag=java', function () {}});  

aspx 页面中的 div:

<div id="divFeedsPorTagWebForms" ></div>
<div id="divFeedsPorTagMVC" ></div>

对 WebForms 的 jQuery 调用运行良好,并用我需要的 HTML 填充了“divFeedsPorTagWebForms”。
对 MVC2 的 jQuery 调用进入 InfoMVCController(调试模式)的 Index 函数,显示标签参数被很好地传递,但没有用它应该返回的 HTML 填充“divFeedsPorTagMVC”div。

有什么建议么?
谢谢。

编辑 控制器:

 public class InfoMVCController : Controller
    {
        private ServicioSORSS.ServicioSORSSClient _srvSORSS = new ServicioSORSSClient();

        //
        // GET: /InfoWebForms/

        public ActionResult Index(string tag)
        {
            return View(_srvSORSS.ObtenerFeedsPorTag(tag));
        }

    }  

如果我只是复制 URL 并将其粘贴到 Firefox 的导航栏中,它确实会返回我需要的所有数据!

4

1 回答 1

1

您遇到了Same origin policy的问题。您的浏览器不允许加载,因为它来自不同的站点。

查看标准$.ajax() 函数,并将jsonp其用作数据类型。

它会是这样的:

$.ajax({
    type: "GET",
    url: "http://localhost:50001/InfoMVC/?tag=java",
    dataType: "jsonp",
    success: function(data){
        $('#divFeedsPorTagMVC').html(data);
    }
});
于 2012-04-06T20:03:31.190 回答