jQuery AJAX 호출을 사용하여 웹 서비스를 호출해야하는 요구 사항이 있습니다. 이를 위해 WebService
하나의 클라이언트 웹 사이트를 만들고 만들었습니다. 안타깝게도 전화를 걸 수 없습니다. AJAX 호출이 전혀 트리거되지 않습니다.
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
public WebService()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string getMessage(string name)
{
return "Hello " + name;
}
}
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="GetMessage" Style="height: 26px"/>
<asp:Label ID="Label1" runat="server" Font-Bold="True"></asp:Label>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>.
$(document).ready(function () {
$('#Button1').click(function () {
alert(1);
$.ajax({
type: 'post',
CORS: true,
url: 'http://localhost/WebService/Hello.asmx?op=getMessage',
contentType: "application/xml",
data: { name: 'aa' },
success: function (d) {
alert(d);
},
failure: function (response) {
debugger;
alert(response.d);
}
});
});
});
클라이언트 응용 프로그램에서 웹 서비스에 액세스하려고합니다. URL 경로에 ASMX 파일을 전달하고 있습니다. 나는 또한 서비스 참조를 제공했습니다. 불행히도 트리거되지 않습니다. AJAX에 실수가 있습니까? 누구든지 이것에 대해 도울 수 있습니까? 오류가 표시되지 않습니다.
완전성과 증명 을 위해이 솔루션 의 git 저장소를 만들고 GitHub에 업로드했습니다 . 소스 코드 를 복제하거나 다운로드 하고 Visual Studio 2012 (또는 +)에서 열고 F5 키를 눌러 실행하여 솔루션이 작동하는지 확인할 수 있습니다. 필요에 따라 수정할 수 있습니다.
질문에서 언급하기 위해 놓친 jQuery 참조를 사용하고 있기를 바랍니다. 아래는 jQuery를 사용하여 ASP.NET에서 소비하는 WebService 코드의 작업 솔루션입니다.
개발 또는 배포에서 앱을 실행하는 경우 문제가되지 않도록 상대 경로를 사용하십시오. 둘째로 지금은 asp.net 컨트롤 ID를 선택하고 있습니다. 나중에 코드를 자식 페이지의 컨트롤로 이동할 때 문제를 일으킬 수 있습니다. 따라서 다음과 같은 jQuery 선택기를 사용하여 $("[id*=Button1]")
요소를 올바르게 선택하십시오.
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("[id*=Button1]").click(function () {
var message = $("[id*=TextBox1]").val();
$.ajax({
type: "POST",
url: "WebService.asmx/getMessage",
data: "{ name: '" + message + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert(r.d);
},
error: function (r) {
alert(r.responseText);
},
failure: function (r) {
alert(r.responseText);
}
});
return false;
});
});
</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="GetMessage" Style="height: 26px"/>
<asp:Label ID="Label1" runat="server" Font-Bold="True"></asp:Label>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
</asp:ScriptManager>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
public WebService()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
public string getMessage(string name)
{
return "Hello " + name;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다