繁体   English   中英

Ajax呼叫返回301突然突然移动

[英]Ajax call return 301 permanently moved suddenly

下面的代码段运行正常,但突然停止,没有明显原因

jQuery.ajax({
            url: "http://example.com/api/getstuff.php?Location="+location+"&token="+token,              
            type: 'GET',
            dataType: 'json',
            success:function(data){
            if(data.success == '0'){
                alert("success");
            }
            else
            {
            alert(data.error);
            }

        });

当我复制从检查器调用的api的URL并在浏览器中打开时,它可以正常工作,在开发和生产上都可以正常工作。 有任何想法吗?

* edit该问题已解决,api调用缺少www,因此该调用被重定向为使用www,因此出现301错误。

尽管这解决了问题,但由于这是很久以前使用的方式,所以我无法解释,突然它停止了工作!

无论如何,我认为我应该发布此修复程序,以便有人可以找到有用的信息。

谢谢

当您尝试访问的资源或URL已被移动或重定向到另一个URL时,通常会发生此错误。

在这种情况下,来自Web服务器的响应始终包含备用URL。

更新您的代码以将请求发送到该备用网址。

如果在响应中找不到备用URL,则Web服务器可能存在问题,或者在Web服务器端未正确设置URL重定向。

正如您说的那样,当您在浏览器中打开该URL时,它是有效的,请仔细注意实际上显示了哪个URL,因为如果浏览器从Web服务器接收到301消息,则它可能会默默地切换到替代URL。

这是您的API还是第三方API? 此状态代码表示该资源已永久移动到新的URL,因此无法再通过该URL进行访问。 如果不是您自己的API,则必须检查Location标头以获取新的资源位置。 使用检查器检查此标头。

为了澄清起见,请看下面的RFC:

链接: http//tools.ietf.org/html/rfc7231#section-6.4.2

301永久移动

301(永久移动)状态码表示已为目标资源分配了新的永久URI,以后对该资源的任何引用都应使用其中的一个URI。 具有链接编辑功能的客户端应在可能的情况下自动将对有效请求URI的引用重新链接到服务器发送的一个或多个新引用。

这部分讨论位置标头->

服务器应该在响应中生成一个Location头字段,其中包含新的永久URI的首选URI引用。 用户代理可以使用位置字段值进行自动重定向。 服务器的响应有效负载通常包含一个简短的超文本注释,其中包含指向新URI的超链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM