创建两个项目

首先,我们需要创建两个项目,一个是MVC项目,另一个是WebAPI项目。这两个项目将用于实现跨域调用的功能。MVC前端代码在MVC项目的前端代码中,我们需要编写一段JavaScript代码来调用Web

首先,我们需要创建两个项目,一个是MVC项目,另一个是WebAPI项目。这两个项目将用于实现跨域调用的功能。

MVC前端代码

在MVC项目的前端代码中,我们需要编写一段JavaScript代码来调用WebAPI的方法。具体的代码如下所示:

```javascript

$.ajax({

url: "http://localhost:5000/api/method",

method: "GET",

success: function(response) {

// 处理返回的数据

},

error: function(error) {

// 处理错误

}

});

```

在上述代码中,我们使用了jQuery的AJAX方法来发送GET请求到WebAPI的方法。需要注意的是,URL应该替换为你实际的WebAPI地址。

在WebAPI中配置跨域

为了使MVC能够跨域调用WebAPI的方法,我们需要进行一些配置。在WebAPI项目的根目录下,新建一个类,并在需要跨域的方法前面添加跨域操作的特性。具体的代码如下所示:

```csharp

public class EnableCrossOriginAttribute : ActionFilterAttribute

{

public override void OnActionExecuting(ActionExecutingContext filterContext)

{

("Access-Control-Allow-Origin", "*");

base.OnActionExecuting(filterContext);

}

}

[EnableCrossOrigin]

public IHttpActionResult Method()

{

// 处理方法逻辑

}

```

上述代码中,我们创建了一个名为`EnableCrossOriginAttribute`的特性类,它继承自`ActionFilterAttribute`。在该特性类中,我们通过设置响应头的方式实现了跨域访问。然后,在需要跨域的方法上添加了`EnableCrossOrigin`特性,以启用跨域访问。

在Controller中调用WebAPI方法

在MVC项目的Controller中,我们可以使用HttpClient来调用WebAPI的方法。需要注意的是,我们需要定义一个接收数据的实体类来接收返回的数据。具体的代码如下所示:

```csharp

public class DataModel

{

public string Name { get; set; }

public int Age { get; set; }

}

public async Task Index()

{

using (HttpClient client new HttpClient())

{

HttpResponseMessage response await ("http://localhost:5000/api/method");

if ()

{

DataModel data await ();

// 处理返回的数据

}

else

{

// 处理错误

}

}

return View();

}

```

在上述代码中,我们首先定义了一个名为`DataModel`的实体类来接收返回的数据。然后,我们使用HttpClient发送GET请求到WebAPI的方法,并根据返回的状态码来处理返回的数据或错误。

A调用B的Demo

最后,我们来看一个完整的示例,其中A调用B的Demo。在这个示例中,我们假设A是MVC项目,B是WebAPI项目。

A项目的前端代码:

```javascript

$.ajax({

url: "http://localhost:5000/api/method",

method: "GET",

success: function(response) {

// 处理返回的数据

},

error: function(error) {

// 处理错误

}

});

```

B项目的Controller代码:

```csharp

public class EnableCrossOriginAttribute : ActionFilterAttribute

{

public override void OnActionExecuting(ActionExecutingContext filterContext)

{

("Access-Control-Allow-Origin", "*");

base.OnActionExecuting(filterContext);

}

}

[EnableCrossOrigin]

public IHttpActionResult Method()

{

// 处理方法逻辑

}

```

通过以上示例,我们可以实现A项目通过前端JavaScript代码跨域调用B项目的WebAPI方法。在B项目中,我们使用了跨域操作的特性类来配置跨域访问。同时,A项目中的前端代码通过AJAX方法发送GET请求到B项目的WebAPI方法,并处理返回的数据或错误。

标签: