通过javascript调用C Web服务
我有一个C[Web方法]存储在下面的url中,但我似乎没有任何运气ping它。返回是一个列表。这个服务电话我做错了什么 Asp.Net设计器 这是web服务通过javascript调用C Web服务,javascript,c#,asp.net,json,web-services,Javascript,C#,Asp.net,Json,Web Services,我有一个C[Web方法]存储在下面的url中,但我似乎没有任何运气ping它。返回是一个列表。这个服务电话我做错了什么 Asp.Net设计器 这是web服务 这是url吗http://staging.ws/service.asmx/AutoDatax 与当前浏览器中的内容不同?我的意思是路径可以不同,但地址栏url的协议、主机名和端口是否相同?如果没有,那么您将受到同一原产地政策的限制。您可以在浏览器控制台的Chrome-Developer Tools F12-Network-Filter by
这是url吗http://staging.ws/service.asmx/AutoDatax 与当前浏览器中的内容不同?我的意思是路径可以不同,但地址栏url的协议、主机名和端口是否相同?如果没有,那么您将受到同一原产地政策的限制。您可以在浏览器控制台的Chrome-Developer Tools F12-Network-Filter by XHRAny错误消息中检查Ajax调用的状态?webmethod被执行了吗?@HansKesting我相信它被执行了,因为当我通过SOAP UI手动调用它时,它会返回正确的结果,不会出错。@Arkantos或其他所有主要浏览器中的开发工具F12。@Mouser。。我知道F12适用于大多数浏览器,我只是想让OP更容易:
<script type="text/javascript">
$(document).ready(function () {
SearchText();
});
function SearchText() {
$(".autosuggest").autocomplete({
source: function (request, response) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://staging.ws/service.asmx/AutoDatax",
data: "{'searchText':'" + document.getElementById('txtSearch').value + "'}",
dataType: "json",
success: function (data) {
alert(data.d);
},
error: function (xhr, msg, e) {
alert(xhr.response);
}
});
}
});
}
</script>
<div class="ui-widget">
<label>Search:</label>
<input id="txtSearch" name="txtSearch" value="<% =searchTerm %>"" class="autosuggest" />
<asp:Button ID="searchButton" runat="server" class="standardButton" OnClick="searchButton_Click" Text="Search"/>
</div>
[WebService(Namespace = "http://microsoft.com/webservices/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
static string db = Connect.Connect("Search", false);
[WebMethod]
public List<string> AutoDatax(string searchText)
{
List<string> result = new List<string>();
using (System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(db))
{
using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("SELECT * FROM [Table] WHERE SearchTerm LIKE @SearchText + '%';", con))
{
con.Open();
cmd.Parameters.AddWithValue("@SearchText", searchText);
System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
result.Add(dr["SearchTerm"].ToString());
}
return result;
}
}
}
}