Aspx页面中的WebMethod无法访问Allow-Origin

时间:2013-07-03 08:34:19

标签: asp.net ajax webmethod

我有以下代码。它无法启用CORS.Please帮助。我无法在aspx页面上的Web方法中启用CORS:

public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.AppendHeader("Access-Control-Allow-Origin", "*");
            Response.AppendHeader("access-control-allow-headers", "content-type");
        }

        [WebMethod]
        [ScriptMethod] 
        public static string Get(string data)
        {
            System.Web.HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*");
            System.Web.HttpContext.Current.Response.AppendHeader("access-control-allow-headers", "content-type");
            return data + " 123";
        }

    }

    // Java Script


    function GetData() {
    window.jQuery.support.cors = true;
    window.jQuery.ajax({
        url: 'http://generalservices.prop.preview.gearhost.com//Default.aspx/Get',

        contentType: "application/json; charset=utf-8",
        dataType: "json",
        type: 'post',
        data: "{ data : '12'}",
        success: function (d) {

        },
        error: function (d) {

        }
    });
  

错误:在Access-Control-Allow-Origin中不允许

1 个答案:

答案 0 :(得分:0)

页面方法应该仅在定义它们的同一页面中使用。

如果您需要从不同的网页获取数据,我建议您查看Asp.Net Web api。或者您甚至可以创建一个简单的Generic handler.ashx文件),您可以从该页面调用该文件。处理程序可以反序列化Json数据,处理它并返回所需的响应。在通用处理程序中,您可以指定所需的任何/所有http标头。