我有一个ASP.NET MVC 4应用程序。此应用程序将通过iFrame嵌入到另一个站点(不同的域)。
部分应用程序具有获取基于州的城市列表的功能。我正在使用jQuery Ajax来做到这一点。除IE之外,所有浏览器都在工作。
根据我的谷歌搜索,我了解到我需要使用XDomainRequest for IE。所以这是代码:
/* 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一起工作?
谢谢!
答案 0 :(得分:0)
我的问题是你的问题与你用于帖子的jquery无关,而是与IE的跨域cookie有关。
尝试添加P3P标头。关于这个问题的一个好的SO线程可以在这里找到: