1

我正在尝试学习 MVC4 Web API。我正在从 VS2010 本身运行我的项目。

我的项目网址是 localhost:31735

当直接从浏览器本身调用 WebAPI 时。它的工作方式类似于 localhost:31735/api/products/

我现在想从项目外部的普通 HTML 文件中调用 Webapi。

我试着这样做

 $(document).ready(function () {
           // Send an AJAX request 
            $.getJSON("http://localhost:31735/api/products/",
            function (data) {
            // On success, 'data' contains a list of products. 
               $.each(data, function (key, val) {

                // Format the text to display. 
                var str = val.Name + ': $' + val.Price;

                // Add a list item for the product. 
                $('<li/>', { html: str }).appendTo($('#products'));
            });
        });
    });

但这不起作用。你能帮我吗。

4

1 回答 1

3

我现在想从项目外部的普通 HTML 文件中调用 Webapi。

您不能这样做,因为同源策略限制会阻止您发送跨域 AJAX 请求。有多种可能的解决方法,其中之一是使用JSONP而不是 JSON。

这是一篇文章,描述了如何使用自定义媒体格式化程序来实现这一目标。

于 2012-06-28T10:38:47.870 回答