使用`window.top。$`在iframe中发送ajax请求,但引用者不是iframe src的网址

时间:2018-09-20 16:11:07

标签: javascript jquery ajax iframe referer

有两个html文件,一个index.htmlinner.html

** index.html **

<html>
<body>
<script src="./node_modules/jquery/dist/jquery.js"></script>
<iframe src="./inner.html" frameborder="1"></iframe>
</body>
</html>

它引用了jquery。

** inner.html **

<html>
<body>
<input type="button" id="button" value="Get Data by AJAX">
<script src="./inner.js"></script>
</body>
</html>

** inner.js **

const $ = window.top.$

$('#button', window.document).click(function () {
    $.ajax({
        url: '/data.json',
        success: function (data) {
            console.log(data)
        },
        context: this
    })
})

在服务器端,我将打印标题referer

打开index.html的网址是:http://localhost:3000

我发现,当我使用$中的window.top在inner.html中发出ajax请求时,服务器中打印的refererhttp://localhost:3000,它是URL外页。

我希望是iframe的网址,http://localhost:3000/inner.html,但是如果我坚持使用window.top的jquery,就找不到办法。

PS:如果我将代码<script src="./node_modules/jquery/dist/jquery.js"></script>index.html移到inner.html,并使用window.$在inner.html中发送ajax请求,则引用是我所期望的:http://localhost:3000/inner.html

这是我项目的简化演示,其中我们必须使用平台提供的jquery,window.top.$

0 个答案:

没有答案