我正在尝试将https://myownserver.com/page.php发送给https://myownserver.com/page2.php,我得到了:Referrer Policy:no-referrer-when-downgrade
。这是使用jquery和ajax的POST请求。这是我的代码:
$('.dSettings').click(function() {
$.post('https://myownserver/page2.php', {bookid: '<?= $book['BookID']; ?>', userid: '<?= $_SESSION['Login']['UserID']; ?>', del: 'delete'}, function (data) {
// do something with the data
});
});
问题是我可以从GET请求打开page2.php并使用PostMan我可以毫无问题地发送POST请求。我真的无法解决问题所在。任何帮助都将不胜感激!
编辑:我正在使用谷歌浏览器,如果有人需要这些信息。 我的请求标题是:Provisional headers are shown
Accept:*/*
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Origin:https://myownserver.com
Referer:https://myownserver.com/page.php
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
X-Requested-With:XMLHttpRequest
EDIT2:我必须说我还有2个ajax请求到同一个page2.php并且他们正在正常工作返回:Referrer Policy:no-referrer-when-downgrade
,还有Status Code: 200
和那个不工作的我我正在使用状态代码:(canceled)
EDIT3:我的部分html代码触发了ajax请求<a href="" class="dSettings">Do something, go somewhere</a>
答案 0 :(得分:0)
请尝试添加代码的head部分
<meta name="referrer" content="no-referrer" />
答案 1 :(得分:0)
我发现了我的错误,这是非常愚蠢的。 问题是我在用户点击然后执行ajax请求时使用a
标记,但问题是我写了href=''
**空 href里面的标签,这就是为什么一切都在混淆。**非常愚蠢的错误我希望这会有助于其他人犯同样的错误,但老实说我不相信别人可以犯同样的错误,哈哈:D谢谢你的答案!
修复很简单,只需将其更改为button
标记或a
标记内部,例如#
,但我更喜欢用自己的按钮标记更改它。< / p>
答案 2 :(得分:-1)
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
如果未指定策略,则这是用户代理的默认行为。 在协议安全级别时,原点作为引用者发送 保持不变(HTTPS-> HTTPS),但不会发送到不太安全的地方 目的地(HTTPS-&gt; HTTP)。
您使用相同的协议吗?