在我的asp.net mvc网站上,当用户将某些内容粘贴到某个文本框中时,我正在对服务器进行ajax调用。该调用曾经在IE 8中起作用,但现在它停止在IE 11中起作用,这使我的h.open(c.type,c.url,c.async) jQuery 1.7.1中的访问被拒绝异常。

长期的研究提示我,这可能与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>


它按预期运行...(无访问被拒绝)

有人知道如何运行它吗?

谢谢!

最佳答案

由于它仅在粘贴时不起作用,因此问题似乎出在粘贴事件处理程序上。

搜索IE11和粘贴事件的问题后,我在StackOverflow上发现了其他“ IE11 pasting clipboard data to an input element annoyance”。

这可能是一个长镜头,但是您可以尝试与AlvinfromDiaspar在该帖子中以answer提供的相同的“解决方案”(=解决方法):

$('#Pasteexcelhere').on('paste', function () { setTimeout(blubb, 100) });

10-08 19:15