【发布时间】:2016-08-04 09:32:51
【问题描述】:
我正在尝试通过使用 jquery 和 asp.net Web 服务来连接跨域 Web 服务。当我尝试连接它时,我收到了error 消息,当它在同一个本地主机中时它工作正常。但是我想在它们位于不同的本地主机或不同的帖子中时获得输出,这意味着我想将我的代码托管在一台机器上,而 Web 服务在另一台机器上。
这是我的代码。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://***.***.**.***/latlangs.asmx/Get_Lat_Longs",
crossDomain: true,
async: true,
data: "{ }",
dataType: "json",
success: function(data) {
alert("Success");
},
error: function(err) {
alert(err.statusText);
}
});
这是我的网络服务方法或 .asmx 页面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data.SqlClient;
using System.Data;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class LatLongs : System.Web.Services.WebService {
string con = @"Data Source=SERVER\QTTS;Initial Catalog=asdf;User ID=sa;Password=*****";
[WebMethod]
[ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
public string Get_Lat_Long_Values()
{
try
{
string stri = @"SELECT MAX(id) AS Expr1 FROM Temp_lat_long_values";
SqlDataAdapter daa = new SqlDataAdapter(stri, con);
DataTable dt = new DataTable();
daa.Fill(dt);
if (dt.Rows.Count > 0)
{
int id = Convert.ToInt32(dt.Rows[0][0].ToString());
stri = @"SELECT x,y,id from Temp_lat_long_values where id='" + id + "'";
daa = new SqlDataAdapter(stri, con);
DataTable dt1 = new DataTable();
daa.Fill(dt1);
if (dt1.Rows.Count > 0)
{
dt1.TableName = "Values";
DataSet ds = new DataSet();
ds.Tables.Add(dt1);
string daresult = DataSetToJSON(ds);
return daresult;
}
else
{
return "No data Found";
}
}
else
{
return "No data found";
}
}
catch (Exception e)
{
return e.Message;
}
}
public string DataSetToJSON(DataSet ds)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
foreach (DataTable dt in ds.Tables)
{
object[] arr = new object[1];
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
arr[0] = dt.Rows[i].ItemArray;
}
dict.Add(dt.TableName, arr);
}
JavaScriptSerializer json = new JavaScriptSerializer();
return json.Serialize(dict);
}
}
【问题讨论】:
标签: javascript jquery asp.net web-services