XMLHttpRequest:仅支持跨源请求

时间:2016-12-23 13:17:23

标签: javascript jquery google-chrome

在我清除了chrome cookies和缓存后,当我点击其href是一个javascript函数的链接时,我开始收到XMLHttpRequest错误。该链接会打开bootstrap modal,并在a dojo ajax component动态创建。当我点击该链接时,我收到XMLHttpRequest错误。

jquery-1.11.3.min.js:5 XMLHttpRequest cannot load javascript:sa(5). Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

我在<header>

中导入DOJO
<script type="text/javascript"
    src='<c:url value="/resources/js/dojo-release-1.10.0/dojo/dojo.js" />'
    djConfig="parseOnLoad: true, usePlainJson: true, isDebug: false, async: false"></script>

和JQuery位于<body>

的底部
<script type="text/javascript"
        src='<c:url value="/resources/js/jquery-1.11.3.min.js" />'></script>

动态链接<a>

<a data-toggle="modal" data-target="#roomModal" href="javascript:sa(5)">Deluxe Double Room</a>

JS函数在另一个文件中。

function sa(accommodationRoomId) {
    var modalHeader = document.getElementById("modalHeader");
    modalHeader.innerHTML += accommodationRoomId;
}

清除chrome缓存和Cookie后,此错误开始显示。我该怎么做才能解决这个错误?

PS:该项目正在Tomcat上运行。

1 个答案:

答案 0 :(得分:2)

我改变了我的功能

onclick

并为<a>

添加<a data-toggle="modal" id="5" data-target="#roomModal" onclick="sa(this)">Deluxe Double Room</a>
sum = h.values.inject(0){|sum,h| sum + h[:total] }
h[0] = {:id => 0, :total => sum}