我从这个调用中得到了一个 http 501 错误:
return $.ajax({
url: finalUrl,
success: function (result) {
console.log('success call result');
console.log(result);
finalResult = result;
},
data: JSON.stringify(data),
type: 'PATCH',
contentType: 'application/json'
});
如何返回模拟错误的模拟,以便我可以在生产环境之外测试修复?我查看了 chrome 中的响应选项卡,我看到了一条 HTML 消息:
<HTML><HEAD>
<TITLE>Unsupported Request</TITLE>
</HEAD><BODY>
<H1>Unsupported Request</H1>
PATCH to http://demo.site.com/serviceName/v1/requests/9305e338-666a-e611-8516-000c291891bb not supported.<P>
Reference #8.f0fd717.1472154919.9959c96
</BODY></HTML>
我们怀疑 API 根本没有受到攻击,被防火墙阻止了。我不知道在这种情况下我是否应该期待一个字符串或对象?如果是对象,那么该对象的成员是什么?
fiddler 说:
服务器:AkamaiGHost
Mime 版本:1.0
内容类型:文本/html
内容长度:350
过期时间:2016 年 8 月 25 日星期四 20:21:49 GMT
日期:2016 年 8 月 25 日星期四 20:21:49 GMT
连接:关闭
最佳答案
We suspect that the API is not being hit at all, blocked by a firewall.
从错误来看,您似乎正在访问未针对该请求类型配置的后端。
假设您也控制后端,请查看这些问题以获得潜在的解决方案。
Does tomcat support http PATCH method?
How do I stop Apache httpd from rejecting HTTP PATCH requests?
如果您确实控制了后端,但上述方法没有帮助,请确保您的 Controller 功能支持该请求方法。例如,在 Spring 中,您必须显式声明:
@Controller
MyController {
@Requestmapping(value = "/api/patchTheThing", method=RequestMethod.PATCH)
@ResponseBody String patchTheThing(....) {
...
}
}
关于javascript - 如何从 ajax 调用中模拟 501 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39154047/