【问题标题】:Access-Control-Allow-Origin in asp.net web serviceasp.net web 服务中的访问控制允许来源
【发布时间】:2017-06-19 02:18:29
【问题描述】:

我有 2 个项目,一个是 Asp.Net Web 服务,第二个是 Asp.Net Web 应用程序,当我尝试在同一个解决方案中运行这两个项目时,它运行完美,但是当我们单独运行项目时(在本地主机上但使用端口号,我收到错误)。 我正在努力解决这个问题,但没有找到完美的解决方案。

WebServiceServer:

[WebMethod]
public void CheckUserNameAndGetNew(string UserName)
{
    bool IsUserNameAvailable = true;
    DAL dal = new DAL();

    UserNameCheck objBel = new UserNameCheck();

    //IsUserNameAvailable = dal.CheckUserNameDAL(UserName);

    while(!dal.CheckUserNameDAL(UserName))   // get in if UserName already exist in database
    {
        Random myRandomNum =new Random();
        int myRandomNumber = myRandomNum.Next(1, 100);

        UserName = UserName + myRandomNumber;
        IsUserNameAvailable = false;
    }

    objBel.IsUserNameAvailable = IsUserNameAvailable;
    objBel.UserName = UserName;

    JavaScriptSerializer js = new JavaScriptSerializer();
    Context.Response.Write(js.Serialize(objBel));
}

网络服务器:

$.ajax({
    url: "http://localhost:49839/WebService1.asmx/CheckUserNameAndGetNew",
    method: "Post",
    data: { UserName: txtUserName },
    dataType: "json",
    success: function (data) {
        debugger;
        var AvailableMsg = $('#AvailableMsg');
        var Availablelbl = $('#Availablelbl');
        var AvailableUserName = $('#AvailableUserName');
        if (data.IsUserNameAvailable) {
            AvailableMsg.text(txtUserName + ' User Name Available');
            Availablelbl.text('');
            AvailableUserName.text('');
            AvailableMsg.css('color', 'Green');
        }
        else {
            AvailableMsg.text(txtUserName + ' User Name is not Available');
            Availablelbl.text('Available: ');
            AvailableUserName.text(data.UserName).click(function () {
                $('#txtUserName').val($(this).text());
                AvailableMsg.text('');
                Availablelbl.text('');
                AvailableUserName.text('');
            });
            AvailableMsg.css('color', 'red');
            Availablelbl.css('color', 'Gray');
            AvailableUserName.css('color', 'green');
        }
    },
    error: function (err) {
        debugger;
    }
});

客户端检查控制台出错:

XMLHttpRequest 无法加载 http://localhost:49839/WebService1.asmx/CheckUserNameAndGetNew。不 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://localhost:65360” 访问。

【问题讨论】:

标签: jquery asp.net web-services webserver cross-domain


【解决方案1】:

您还需要允许Web服务服务器跨域提供数据(也意味着其他的呼叫请求-响应)。因此,您需要在 Web 服务服务器的 web.config 中进行流动设置。

 <system.webServer>
 <httpProtocol>
      <customHeaders>
           <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>

【讨论】:

    猜你喜欢
    • 2016-11-14
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2017-11-03
    • 2016-03-08
    相关资源
    最近更新 更多