下面的代码片段工作正常,但它没有明显原因突然停止
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并在浏览器中打开它工作正常时,它在开发和生产方面都运行良好。 任何想法?
*编辑 问题已得到解决,api呼叫缺少www,因此呼叫被重定向为使用www,因此301错误。
虽然这解决了问题,但我无法解释,因为这是很久以前使用的方式,突然它停止了工作!
无论如何我认为我应该发布修复程序,以便有人能找到有用的东西。
由于
答案 0 :(得分:4)
当您尝试访问的资源或网址已被移动或重定向到另一个网址时,通常会发生此错误。
在这种情况下,来自Web服务器的响应始终包含备用URL。
更新您的代码以向此备用网址发送请求。
如果在响应中找不到备用URL,则Web服务器可能存在某些问题,或者在Web服务器端未正确设置URL重定向。
正如您所说,当您在浏览器中打开它时,同一个URL正在工作,请仔细记下实际显示的URL,因为如果从Web服务器收到301消息,浏览器可能会静默切换到替代URL。
答案 1 :(得分:1)
这是您的API还是第三方API?此状态代码表示此资源已永久移至新网址,无法再在此网址中访问。如果它不是您自己的API,则必须检查Location标头以获取新的资源位置。使用检查器检查此标题。
请注意,请看下面的RFC:
链接:http://tools.ietf.org/html/rfc7231#section-6.4.2
301永久移动
301(永久移动)状态代码表示目标 资源已被分配一个新的永久URI和任何未来 对此资源的引用应该使用其中一个附带的URI。 具有链接编辑功能的客户端应该自动重新链接 引用一个或多个新的有效请求URI 在可能的情况下,服务器发送的引用。
这部分讨论了Location头 - >
服务器应该在响应中生成Location头字段 包含新永久URI的首选URI引用。该 用户代理可以使用Location字段值进行自动 重定向。服务器的响应有效负载通常包含一个短消息 超文本注释,带有指向新URI的超链接。