Вот первая часть моей возвращенной строки JSON (из ответа POST в firebug)
{"d":"{\"companies\" : [{\"CompanyID\" : \"5\",\"CompanyName\" : \"(No Insurance Carrier)\"},{\"CompanyID\" : \"0\",\"CompanyName\" : \"(None Specified)\"},{\"CompanyID\" : \"72431\",\"CompanyName\" : \"A.M. Technologies, Inc./W.P. Hickman Systems\"},{\"CompanyID\" : \"72486\",\"CompanyName\" : \"AAA\"},...]}"}
Вот скрипт для pageLoad:
$.ajax({
type: "POST",
url: strURL + "/GetCompanyNames",
contentType: "application/json; charset=utf-8",
data: "{'strApplicationName':'hidden', 'strAPIkey':'hidden'}",
dataType: "json",
success: function(msg) {
var options = $("#ddlCompany").attr('options');
$('option', $("#ddlCompany")).remove();
$("#ddlCompany").get(0).options[0] = new Option("Select Company", "-1");
$.each(msg.d, function(item) {
options[options.length] = new Option(item.CompanyName, item.CompanyID);
});
},
error: function() {
alert("Failed to load Companies");
}
});
Я получаю сообщение об ошибке: CompanyName не определено.Кто-нибудь может увидеть, что я здесь делаю не так?Нужно ли мне сначала добраться до таблицы в msg.d?
$.ajax({
type: "POST",
url: strURL + "/GetCompanyNames",
contentType: "application/json; charset=utf-8",
data: "{'strApplicationName':'hidden', 'strAPIkey':'hidden'}",
dataType: "json",
success: function(msg) {
$("#ddlCompany").get(0).options.length = 0;
$("#ddlCompany").get(0).options[0] = new Option("Select Company", "-1");
window.alert(msg.d);
for (var i = 0; i <= msg.d.companies.length - 1; i++) {
$("#ddlCompany").get(0).options[$("#ddlCompany").get(0).options.length] = new Option(msg.d.companies[i].CompanyName, msg.d.companies[i].CompanyID);
}
},
error: function() {
alert("Failed to load Companies");
}
});
Я тоже пробовал, но компании не найдены.В окне оповещения отлично отображается JSON msg.d.
, поэтому в этом нет необходимости, но если я проанализирую результат в JSON, он будет работать в Firefox, а не в IE?Например:
$.ajax({
type: "POST",
url: strURL + "/GetCompanyNames",
contentType: "application/json; charset=utf-8",
data: "{'strApplicationName':'hidden', 'strAPIkey':'hidden'}",
dataType: "json",
success: function(msg) {
if (msg.hasOwnProperty("d")) { msg = msg.d; }
var json = JSON.parse(msg);
$("#ddlCompany").get(0).options.length = 0;
$("#ddlCompany").get(0).options[0] = new Option("Select Company", "-1");
for (var i = 0; i <= json.companies.length - 1; i++) {
$("#ddlCompany").get(0).options[$("#ddlCompany").get(0).options.length] = new Option(json.companies[i].CompanyName, json.companies[i].CompanyID);
}
},
error: function() {
alert("Failed to load Companies");
}
});
Есть идеи, почему этот скрипт будет зависать в IE?