客户端
$.ajax({
url: "http://localhost:53607/api/values",
type: "GET",
cache: false,
success: function(data){
var ppFacets = internal.econbiz.preprocessFacets(data);
var ppResults = internal.econbiz.preprocessResults(data);
internal.onReceiveData(term, ppFacets, ppResults);
},
error:function(err){
console.log(err.statusText);
console.log('异常');
}
});
服务端
public class ValuesController : ApiController
{
// GET api/values
public string Get()
{
string json;
// ...
return json;
}
出现问题:
Access to XMLHttpRequest at 'http://localhost:53607/api/values' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
原因关键词: 跨域访问
解决方案一(从服务器出发):
1.创建一个类AllowCrossSiteJsonAttribute
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Filters;
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (actionExecutedContext.Response != null)
actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
base.OnActionExecuted(actionExecutedContext);
}
}
2.在Controller类前添加标记[AllowCrossSiteJson]
[AllowCrossSiteJson]
public class ValuesController : ApiController
{
// GET api/values
public string Get()
{
}
}
3.成功