2 개의 프로젝트 중 하나는 Asp.Net 웹 서비스이고 다른 하나는 Asp.Net 웹 응용 프로그램입니다. 동일한 솔루션에서 두 프로젝트를 모두 실행하려고하면 완벽하게 실행됩니다. 그러나 프로젝트를 별도로 실행하면 (localhost에서는 포트 번호로 오류가 발생합니다). 이 문제를 해결하기 위해 열심히 노력하고 있지만 완벽한 해결책은 없습니다.asp.net 웹 서비스의 Access-Control-Allow-Origin
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'의 출처는 허용되지 않습니다. .
는 https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-cors보기 – sideshowbarker