【发布时间】:2014-06-19 01:10:31
【问题描述】:
在我的 asp.net mvc 网站中,当用户在某个文本框中粘贴某些内容时,我正在对我的服务器进行 ajax 调用。此调用曾经在 IE 8 中运行,但现在它在 IE 11 中停止运行,在我的 jQuery 1.7.1 中h.open(c.type,c.url,c.async) 出现访问被拒绝异常。
长期研究提示我这可能与 CORS 问题有关,但是……每个调用都在同一个域上。
<input type="text" id="Pasteexcelhere" name="Pasteexcelhere" />
<script type='text/javascript' >
$(function () {
onp();
});
function onp() {
obj = document.getElementById('Pasteexcelhere');
$('#Pasteexcelhere').on('paste', function (e) {
x = obj.value;
$.ajax({
type: "POST",
url: "<%= Url.Action("PasteFromExcel", "RequestData" ) %>",
data: "{'data': '" + x + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
success: function (da) {
alert("success");
},
error: function (d) {
alert(d.statusText); // access denied
}
});
});
</script>
当尝试直接进行相同的调用时,假设通过一个简单的链接:
<a id="mylink" href="#" onclick="blubb();return false;">Pasted</a>
<script type='text/javascript' >
function blubb() {
obj = document.getElementById('Pasteexcelhere');
x = obj.value;
$.ajax({
type: "POST",
url: "<%= Url.Action("PasteFromExcel", "RequestData" ) %>",
data: "{'data': '" + x + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
traditional: true,
success: function (da) {
var propertyGrid = $('#RequestedTickers').data('tGrid');
propertyGrid.rebind({});
},
error: function (d) {
alert(d.statusText);
}
});
};
</script>
它按预期工作......(没有拒绝访问)
有人知道如何让它运行吗?
谢谢!
【问题讨论】:
-
可能因为调用 onp() 时 obj 不存在而无法正常工作
-
如果我在那里放一个断点,“obj”看起来绝对没问题
标签: javascript jquery ajax cors