![](/img/trans.png)
[英]Convey FaultException details from an ajax-enabled WCF service?
[英]Loading Handsontable from an AJAX-enabled WCF Service
我正在嘗試從啟用AJAX的WCF服務中的Handsontable中顯示數據,但是它什么也沒顯示。
CarsService.svc:
[DataContract]
public class Car
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Year { get; set; }
}
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CarsService
{
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json)]
public IEnumerable<Car> GetCars()
{
var cars = new List<Car>();
var car1 = new Car()
{
Name = "Kia",
Year = "2008"
};
var car2 = new Car()
{
Name = "Nissan",
Year = "2009"
};
cars.Add(car1);
cars.Add(car2);
return cars;
}
}
WebPage:
<head runat="server">
<title></title>
<script type='text/javascript' src='/Scripts/jquery-1.8.3.js'></script>
<script type='text/javascript' src="/Scripts/Handsontable/jquery.handsontable.js"></script>
<script type='text/javascript' src="/Scripts/Handsontable/bootstrap-typeahead.js"></script>
<script type='text/javascript' src="/Scripts/jquery.contextMenu.js"></script>
<script type='text/javascript' src="/Scripts/jquery.ui.position.js"></script>
<link rel="stylesheet" type="text/css" href="/Styles/jquery.contextMenu.css"/>
<link rel="stylesheet" type="text/css" href="/Styles/Handsontable/jquery.handsontable.css"/>
</head>
<body>
<form id="form1" runat="server">
<script type='text/javascript'>
$(window).load(function () {
$.ajax({
url: "/CarsService.svc/GetCars",
type: "GET",
dataType: "json"
})
.success(function (result) {
$("#exampleGrid").handsontable("loadData", result);
})
.fail(function (r, o) {
alert("Failed : " + r.responseText);
});
});
</script>
<div id="exampleGrid" class="dataTable"></div>
</form>
</body>
以下為我工作:
我用newtonsoft的Json.net: http://json.codeplex.com/
服務合同:
[WebInvoke(Method = "GET")]
[OperationContract]
string GetAllData();
wcf服務返回:
return JsonConvert.SerializeObject(data);
和javascript ...(“數據”是我的Ajax調用返回的內容)
var myData = JSON.parse(data.d);
var config = {
data: myData,
columns: [
//I had to set 'data' of each column
{ data: "OtherParty" },
{ data: "Reference" }
]
};
$container.handsontable(config);
我希望這是有幫助的
加密實用程序
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEParameterSpec;
import sun.misc.BASE64Decoder;
public class EncryptionUtils
{
private Cipher decryptCipher;
private BASE64Decoder decoder = new BASE64Decoder();
public EncryptionUtils() throws SecurityException {
Security.addProvider(new com.sun.crypto.provider.SunJCE());
char[] pass = "edurixkey".toCharArray();
byte[] salt = {
-93, 33, 36, 44,
-14, -46, 62, 25 };
int iterations = 3;
init(pass, salt, iterations);
}
public void init(char[] pass, byte[] salt, int iterations) throws SecurityException {
try {
PBEParameterSpec ps = new PBEParameterSpec(salt, 20);
SecretKeyFactory kf = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey k = kf.generateSecret(new javax.crypto.spec.PBEKeySpec(pass));
decryptCipher = Cipher.getInstance("PBEWithMD5AndDES/CBC/PKCS5Padding");
decryptCipher.init(2, k, ps);
}
catch (Exception e) {
throw new SecurityException("Could not initialize Encryption: " + e.getMessage());
}
}
public synchronized String decrypt(String str) throws SecurityException {
try {
byte[] dec = decoder.decodeBuffer(str);
byte[] utf8 = decryptCipher.doFinal(dec);
return new String(utf8, "UTF8");
}
catch (Exception e) {
throw new SecurityException("Could not decrypt: " + e.getMessage());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.