使用以下Javascript(Ajax)代码,可以在http上正常工作,但不能在https上工作
我使用下面的代码重定向,如果用户的国家不是印度,那么重定向它,否则保持在同一页上使用以下Javascript(Ajax)代码,可以在http上正常工作,但不能在https上工作,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用下面的代码重定向,如果用户的国家不是印度,那么重定向它,否则保持在同一页上 <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script> <script type="text/javascript"> function preloadFunc() { $.ajax('http://ip-api.c
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function preloadFunc()
{
$.ajax('http://ip-api.com/json')
.then(
function success(response) {
if(response.country!="India")
{window.location.replace("https://www.google.com/");}
}
window.onpaint = preloadFunc();
</script>
函数preload func()
{
$.ajax('http://ip-api.com/json')
.那么(
功能成功(响应){
如果(答复.国家!=“印度”)
{window.location.replace(“https://www.google.com/");}
}
window.onpaint=preload函数();
尝试从https启动的站点执行http调用时会发生什么情况:
jquery-1.9.1.min.js:5混合内容:“https://*****”处的页面是通过https加载的,但请求的是不安全的XMLHttpRequest端点”http://ip-api.com/json“”此请求已被阻止;内容必须通过HTTPS提供
如果您尝试使用https进行此呼叫,您会得到:
jquery-1.9.1.min.js:5获取403(禁止)
如果你在浏览器中直接尝试,你会得到
{"status":"fail","message":"SSL unavailable for this endpoint, order a key at https://members.ip-api.com/"}
顺便说一句,您的代码中还有两个JS语法错误。下面是一个更正的版本(恐怕它对通过https返回ip内容没有帮助)
函数preload func()
{
$.ajax('https://ip-api.com/json')
.那么(
函数成功(响应){console.log(响应);
如果(答复.国家!=“印度”){
window.location.replace(“https://www.google.com/");
}
})
}
window.onpaint=preload函数();
尝试从https启动的站点执行http调用时会发生什么情况:
jquery-1.9.1.min.js:5混合内容:“https://*****”处的页面是通过https加载的,但请求的是不安全的XMLHttpRequest端点”http://ip-api.com/json“”此请求已被阻止;内容必须通过HTTPS提供
如果您尝试使用https进行此呼叫,您会得到:
jquery-1.9.1.min.js:5获取403(禁止)
如果你在浏览器中直接尝试,你会得到
{"status":"fail","message":"SSL unavailable for this endpoint, order a key at https://members.ip-api.com/"}
顺便说一句,您的代码中还有两个JS语法错误。下面是一个更正的版本(恐怕它对通过https返回ip内容没有帮助)
函数preload func()
{
$.ajax('https://ip-api.com/json')
.那么(
函数成功(响应){console.log(响应);
如果(答复.国家!=“印度”){
window.location.replace(“https://www.google.com/");
}
})
}
window.onpaint=preload函数();
有两个问题:
window.location.replace
时发生的安全冲突。replace方法在浏览器中重写当前页面历史记录并重定向页面。但限制是目标的来源应与页面的服务位置相同
window.location = 'https://www.google.com'
window.location.href = 'https:..www.google.com'
有两个问题:
window.location.replace
时发生的安全冲突。replace方法在浏览器中重写当前页面历史记录并重定向页面。但限制是目标的来源应与页面的服务位置相同
window.location = 'https://www.google.com'
window.location.href = 'https:..www.google.com'
该端点不支持
https
直接点击并检查
端点不支持
https
直接点击并检查
面对相同的问题它看起来根本不受支持..?我使用它只是为了确保它在重定向到新URL之前不会加载以前的URL。请编写重定向代码,如window.location=“”然后再试一次。问题不在于重新定位,而在于通过https加载代码时调用。面对相同的问题,它看起来根本不受支持。我使用此选项只是为了确保它在重定向到新URL之前不会加载以前的URL。编写重定向代码,如window.location=“”然后再试一次。问题不在于重新定位,而在于通过https加载代码时调用。有没有一种方法可以在http上使用此api,就像我可以在后端将https转换为http一样?您可以在服务器中创建一个反向代理并通过它发送请求,有没有一种方法可以使用此方法http上的api以及我是否可以在后端将https转换为http,rest保持不变?您可以在服务器中创建反向代理并通过该代理发送请求,