通过javascript跨域aspx webMethod获取JSON

通过javascript跨域aspx webMethod获取JSON,javascript,json,cross-domain,Javascript,Json,Cross Domain,请帮我解决以下问题 有客户端代码可以从我的服务器获取JSON数据: <input type="button" id="btn" value="btn" /> <script type="text/javascript"> $('#btn').click(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", da

请帮我解决以下问题

有客户端代码可以从我的服务器获取JSON数据:

<input type="button" id="btn" value="btn" />
<script type="text/javascript">
  $('#btn').click(function () {
    $.ajax({
      type: "POST",
      contentType: "application/json; charset=utf-8",
      data: "{'em':'1'}",
      url: "http://myserver/default.aspx/GetInfo",
      dataType: "json",
      success: function (result) {
        $.each(result, function (i, field) {
          alert(field);
        });
      }
    });
  });
</script>

任务是在我的服务器上的aspx页面上创建web方法,以便客户机向其获取JSON数据。当我在本地测试它时,它工作,但当我从服务器调用web方法时,它不工作。我知道我应该更改客户端代码以处理跨域的问题,但是当我在服务器端使用web方法时,我应该如何做?

请求受到限制,只有在服务器和支持注释都满足以下条件时,才能放宽请求:。另外,ASP.NET中对CORS的官方支持主要是,这是对2013年的最新补充。我认为我应该使用jsonp,但我如何将其应用于webmethod。嗯,你不能发布。它可以发出跨源请求,因为它使用了一个而不是XMLHttpRequest。但是,这限制了它获取请求。那么解决问题的方法是什么呢?也许我不应该使用webmethod,而应该使用page调用?那么使用带参数的JSONP和GET呢?
[System.Web.Services.WebMethod]
public static string GetInfo(string em)
{
  return "{\"a\":\"" + em + "\"}";
}