0

我有以下代码。它不适用于启用 CORS。请帮助。我无法在 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 中不允许

4

1 回答 1

0

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

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

于 2013-07-03T09:04:06.997 回答