asp.net Web 服务中的访问控制允许源



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

网络服务服务器:

[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。不 "访问控制允许源"标头存在于请求的上 资源。因此不允许使用原产地"http://localhost:65360" 访问。

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

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

相关内容

  • 没有找到相关文章

最新更新