jqueryとasp.net Webサービスを使用してクロスドメインWebサービスを接続しようとしています。私はこれを接続しようとしているときに私はerror
メッセージを受け取り、これは同じlocalhostにあるときにうまくいきます。しかし、私は彼らが別のローカルホストや別の投稿にあるときに出力を得たい、つまり、私は1つのマシンに私のコードをホストし、Webサービスは別のマシンに入れたい。 ここに私のコードです。javascriptとjqueryを使用してasp.netのクロスドメイン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);
}
});
、ここでは、私のWebサービスメソッドまたはの.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);
}
} JSONPによって解決することができ
タンクqダルシャンジャイン。私はあなたが何もlocalJsonpCallbackメソッドに行っていないイベントコントロールを取得didntは言ったように私はコードを更新しました。あなたはこの問題を出すのを助けることができます –
@KrishnaMohan、詳細については、このリンクを確認することができますhttp://stackoverflow.com/questions/14221429/how-can-i-produce-jsonp-from-an-asp -net-web-service-for-cross-domain-callsまだ問題がある場合は教えてください。 –
私はあなたの例を使って何も得られませんでした。エラー機能に入っていない場合でも、以下のコードを見つけてください –