【发布时间】:2017-05-10 05:32:53
【问题描述】:
我在 Default.aspx 上有这个 ajax 代码:
$.ajax({
//url: "Default.aspx/GetCompany",
url: "WebService.asmx/GetCompany",
type: "POST",
data: { companyName: compName },
dataType: "xml",
success: function (data) {
var jQueryXml = $(data);
$('#txtBoxInn').val(jQueryXml.find('INN').text());
}
});
当我将 Web 服务 url 作为参数传递时,一切正常。当我传递 aspx-page url 时,什么也没有发生。方法的主体在 .asmx 和 .aspx 文件中是相同的。
我的问题是可以使用 aspx 页面而不是 asmx 服务来使 ajax 请求可行吗?
有服务器端代码:
namespace WSS_AJAX_SQL
{
[System.Web.Script.Services.ScriptService]
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
public Company GetCompany(string companyName)
{
Company company = new Company();
string cs = @"Data Source=Barrus-laptop\sqlexpress;Initial Catalog=WSS_Companies;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(cs))
{
SqlCommand command = new SqlCommand($"select * from [CompanyList] where [Name] = '{companyName}'", connection);
command.CommandType = System.Data.CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
company.ID = Convert.ToInt32(reader["ID"]);
company.Name = reader["Name"].ToString();
company.INN = Convert.ToInt32(reader["INN"]);
}
}
return company;
}
}
}
console.log 的结果:
-
XML 格式 + Web 服务(按我的意愿工作):
2 微软 994542214
XML + Web Page 返回整个页面(从 !DOCTYPE 到 /html)。
JSON + 网页返回一个对象:
Object d:
ObjectID: 2
INN: 994542214
Name: "Microsoft"
__type: "WSS_AJAX_SQL.Company"
__proto__: Object
__proto__: Object
谢谢。
【问题讨论】:
标签: c# jquery asp.net ajax web-services