다음과 같은 문제점이 있습니다. 하나의 ASP가 있습니다. NET Web Service 프로젝트 (*. asmx)는 몇 가지 기능을 가지고 있으며 두 번째 프로젝트이며 ASP .NET도 jQuery Ajax (서비스 참조 없음)를 사용하여 서비스를 호출해야한다. 웹 서비스 프로젝트 :jQuery Ajax에서 원격 호출 ASP.Net 웹 서비스
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class MathService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod]
public int Add(int x, int y)
{
return x + y;
}
}
및
<script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://localhost:47204/Services/MathService.asmx/Add",
data: "{'x': '5', 'y': '10'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$("#divMathService").text(res.d);
},
error: function() {
alert("ALARM!");
}
});
});
</script>
이 - 로컬 호스트 : 47,204 - 호스트 웹 서비스 프로젝트, 내가 프로젝트를 디버깅 할 때. 나는 클라이언트 프로젝트에서 사용할 URL을 구체적으로 지적했다. 프로젝트가 제대로 작동합니다. 다음과 같이 프로젝트 클라이언트 같습니다
<script type="text/javascript" src="Scripts/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type: "POST",
url: "http://localhost:47204/Services/MathService.asmx/Add",
data: "{'x': '5', 'y': '10'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (res) {
$("#divMathService").text(res.d);
},
error: function() {
alert("ALARM!");
}
});
});
</script>
을하지만,이 프로젝트가 어떤 결과를 표시하지 않습니다 만 경고, 그 이유를 이해하지 않습니다. 원격 호출에 대한 권한 문제 일 수 있습니까?
프로젝트를 첨부 할 수는 없지만 누군가 프로젝트를보고 싶다면 이메일을 보낼 수 있습니다. 또한, 귀하의 방법을 알 필요가
'{"x": 5, "y": 10}'
는 JSON으로 응답 보낼 :
당신은 "원격 호출"에 대해 얘기를하고 이 경우 서버가 클라이언트와 다른 도메인에서 호스팅된다는 것을 의미하므로 코드가 작동하지 않습니다. 달성 할 수있는 유일한 방법은 JSON-P를 사용하는 것이며 ASMX WebService로 빌드하는 것은 어렵거나 거의 불가능하다고 생각합니다. –
[피들러]와 같은 도구를 사용하는 것이 좋습니다 (http : //www.fiddler2 .com/fiddler2 /)를 사용하여 Ajax 요청을 디버깅 할 수 있습니다. 당신은 오류의 원인을 볼 수 있습니다 –