我正在尝试从RESTful服务获取JSON值。
我的服务:
namespace WcfService1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "/GetUserDetails")]
string GetUserDetails();
}
}
我从浏览器中获取服务中的值。
但是当我在HTML页面中通过jQuery访问它时。它显示错误。
<script type="text/javascript">
$(document).ready(function () {
$('#BtnGetData').click(function () {
debugger;
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: 'http://localhost:22727/Service1.svc/GetUserDetails',
data: "{}",
dataType: "json",
success: function (data) {
$($.parseJSON(data.d)).each(function (index, value) {
$("#tbDetails").append("<tr><td>" + value.Name + "</td><td>" + value.Email + "</td><td>" + value.Category + "</td><td>" + value.Mobile + "</td><td>" + value.Message + "</td></tr>");
});
},
error: function (result) {
alert(result);
}
});
});
});
</script>
我的服务方式:
public string GetUserDetails(string UserName, string Password)
{
if (UserName == "Admin" && Password == "123")
{
string file = AppDomain.CurrentDomain.BaseDirectory + "\\DataFile.xml";
DataSet ds = new DataSet();
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
ds.ReadXml(file);
foreach (DataRow item in ds.Tables[0].Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in ds.Tables[0].Columns)
{
row.Add(col.ColumnName, item[col]);
}
rows.Add(row);
}
return serializer.Serialize(rows);
}
else
{
return "null";
}
}
它在控制台中显示以下错误:
答案 0 :(得分:0)
我认为json的格式不正确
"[{"Name" :"Nimit","Email:test@test.com"...
像这样,我已经使用你的ajax调用我的服务它工作正常。所以错误在服务 json不是格式。