我有一个 ASP.NET MVC 4 应用程序。此应用程序将通过 iFrame 嵌入到另一个站点(不同域)。
该应用程序的一部分具有获取基于州的城市列表的功能。我正在使用 jQuery Ajax 来执行此操作。除 IE 外,所有浏览器都可以正常工作。
根据我的谷歌搜索,我了解到我需要为 IE 使用 XDomainRequest。所以这里是代码:
/* For dynamically getting list of cities by state */
$("#state").change(function() {
$(".city").empty();
if ($(this).val() != "") {
if ($.browser.msie && window.XDomainRequest) {
var data = "state=" + $(this).val();
var xdr = new window.XDomainRequest();
xdr.open("POST", "/Search/GetCities");
xdr.send(data);
xdr.onload = function() {
var json = $.parseJSON(xdr.responseText);
if (json == null || typeof(json) == 'undefined') {
json = $.parseJSON(data.firstChild.textContent);
}
processData(json);
};
xdr.send();
} else {
$.ajax({
type: "POST",
url: "/Search/GetCities",
data: {
state: $(this).val()
},
dataType: "json",
success: function(data) {
if (data == '') {
$("#state").change();
} else {
$(".city").css("display", "none");
var items = "<option value=\"\" selected>Please Select</option>";
$.each(data, function(i, item) {
items += "<option value='" + item.Value + "'>" + item.Text + "</option>";
});
$(".city").append(items);
$(".city").css("display", "");
$(".city").attr('disabled', false);
}
}
});
}
}
});
/* End dynamically getting list of cities by state */
这是踢球者。对于 FF、Chrome 和 Safari,身份验证 cookie 会在 Ajax 调用中传递,但不会在 IE 中传递,因此 IE 认为我不是身份验证用户,因此它会使用登录 URL 进行响应。
在 IE 上进行这项工作我缺少什么?
谢谢!