当我用 js 做 ajax 请求时,我得到 'Referrer Policy:no-referrer-when-downgrade'
When i am doing ajax request with js i am getting 'Referrer Policy:no-referrer-when-downgrade'
我正在尝试发送 https://myownserver.com/page.php to https://myownserver.com/page2.php,我收到:Referrer Policy:no-referrer-when-downgrade
。这是使用 POST 请求,使用 jquery 和 ajax。这是我的代码:
$('.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 请求。我真的不明白问题出在哪里。任何帮助将不胜感激!
编辑:如果有人需要此信息,我正在使用 Google Chrome。
我的请求 Headers 是:
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:触发 ajax 请求的 html 代码的一部分 <a href="" class="dSettings">Do something, go somewhere</a>
请尝试在代码的头部添加
<meta name="referrer" content="no-referrer" />
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
This is the user agent's default behavior if no policy is specified.
The origin is sent as a referrer when the protocol security level
stays the same (HTTPS->HTTPS), but isn't sent to a less secure
destination (HTTPS->HTTP).
你们使用相同的协议吗?
我发现了我的错误,非常愚蠢。 问题是我在用户单击然后执行 ajax 请求时使用 a
标记,但问题是我写了 href=''
* *a 标签内的空 href,这就是为什么一切都混淆了。** 非常愚蠢的错误,我希望这会帮助其他人犯了同样的错误,但老实说我不相信有人其他人也会犯同样的错误,哈哈 :D 谢谢大家的回答!
修复很简单,只需将其更改为 button
标签或在 a
标签内放入 #
例如,但我更喜欢自己使用按钮标签进行更改.
我正在尝试发送 https://myownserver.com/page.php to https://myownserver.com/page2.php,我收到:Referrer Policy:no-referrer-when-downgrade
。这是使用 POST 请求,使用 jquery 和 ajax。这是我的代码:
$('.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 请求。我真的不明白问题出在哪里。任何帮助将不胜感激!
编辑:如果有人需要此信息,我正在使用 Google Chrome。 我的请求 Headers 是:
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:触发 ajax 请求的 html 代码的一部分 <a href="" class="dSettings">Do something, go somewhere</a>
请尝试在代码的头部添加
<meta name="referrer" content="no-referrer" />
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy
This is the user agent's default behavior if no policy is specified. The origin is sent as a referrer when the protocol security level stays the same (HTTPS->HTTPS), but isn't sent to a less secure destination (HTTPS->HTTP).
你们使用相同的协议吗?
我发现了我的错误,非常愚蠢。 问题是我在用户单击然后执行 ajax 请求时使用 a
标记,但问题是我写了 href=''
* *a 标签内的空 href,这就是为什么一切都混淆了。** 非常愚蠢的错误,我希望这会帮助其他人犯了同样的错误,但老实说我不相信有人其他人也会犯同样的错误,哈哈 :D 谢谢大家的回答!
修复很简单,只需将其更改为 button
标签或在 a
标签内放入 #
例如,但我更喜欢自己使用按钮标签进行更改.