在名为Payment的API控制器中,我有以下方法:
[HttpPost]
public HttpResponseMessage Charge(Payment payment)
{
var processedPayment = _paymentProcessor.Charge(payment);
var response = Request.CreateResponse(processedPayment.Status != "PAID" ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK, processedPayment);
return response;
}
Run Code Online (Sandbox Code Playgroud)
在我的HTML页面中,我有:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost:65396/api/payment/charge",
data: $('#addPayment').serialize(),
dataType: "json",
success: function (data) {
alert(data);
}
});
Run Code Online (Sandbox Code Playgroud)
每当我解雇POST时,我都会
"NetworkError: 405 Method Not Allowed - http://localhost:65396/api/payment/charge"
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
谢谢.
UPDATE
这是路由信息(默认)
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = …Run Code Online (Sandbox Code Playgroud) 一些用户抱怨网络问题.我们的Android应用程序通过https与我们的服务器通信.
我们的Apache日志显示了状态响应; "405方法不允许(CONNECT)",此问题仅在特定IP地址上重现.
我不明白为什么Android应用程序试图通过CONNECT方法到达服务器,我从不在应用程序中使用此方法,我只使用GET,POST或PUT.
似乎代理可能涉及该问题,但我不知道如何解决它.有人知道吗 ?
介绍:
您好,我正在尝试在我的本地IIS 7.5服务器上设置WCF Web服务,但是在完成基本配置后,我无法使用WinForms测试客户端发送数据,并返回标题中提到的错误.我已经在这个问题上搜索了类似的线程,但我找不到任何适合我的问题的东西.
数据:
- Wcf WebService和第三方提供的测试客户端
- 他们已经在另一台服务器上工作,我使用相同的版本
- 启用或配置IIS时,我可能做错了什么
请求:
- 我需要知道我需要启用/禁用哪些IIS功能才能正确安装,以便我可以使用Wcf WebService.(如果是这种情况).
- 如何正确配置服务器以解决上述错误.
我的配置:
- 安装IIS后,我将DefaulAppPool更改为.NET Framework v4.0.30.319; 管道模式:集成. - 高级设置:加载用户配置文件= False.
- 使用DefaultAppPool.Binding处理名为"WcfMicrocontrollerService"的新网站; 键入:http,IP地址:,端口:80
此时我可以通过Web浏览器访问它,但是当我使用测试客户端将数据POST到服务时,我收到以下错误:"远程服务器返回了意外响应:(405)方法不允许."
以下是由Fiddler发送的数据包:已发送:
POST http://192.168.0.102/MicroControllerComSvc.svc HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://tempuri.org/IMicroControllerComSvc/GetMicrocontrollerData"
Host: 192.168.0.102
Content-Length: 237
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetMicrocontrollerData xmlns="http://tempuri.org/"><microControllerData>1,1,1,1,2,2,1,0,100,300</microControllerData></GetMicrocontrollerData></s:Body></s:Envelope>
Run Code Online (Sandbox Code Playgroud)
收稿日期:
HTTP/1.1 405 Method Not Allowed
Cache-Control: private
Allow: GET, HEAD, OPTIONS, TRACE
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 01 Mar 2016 …Run Code Online (Sandbox Code Playgroud) 最近我开始将一些视图函数转换为Generic Views.转换预期处理POST请求的函数(通过AJAX形式)导致"405 Method not allowed"HTTP异常.我确定不是关于CSRF:Ajax发送有效令牌,将通用视图更改回查看功能(在测试用例中,它们基本相同)修复了问题,并且 - 最后 - 出于测试目的,我已经禁用CSRF中间件.有没有人遇到类似的问题?
我在Spring中执行"DELETE"HTTP请求时遇到了一个奇怪的问题.
我有一个控制器方法,我已将DELETE请求映射到:
@RequestMapping(value = "/{authorizationUrl}",method=DELETE)
public void deleteAuthorizationServer(
@RequestHeader(value="Authorization") String authorization,
@PathVariable("authorizationUrl") String authorizationUrl)
throws IOException {
System.out.println("TEST");
}
Run Code Online (Sandbox Code Playgroud)
控制器使用@RequestMapping("/authorization_servers");
当我通过我的DEV Http客户端发送请求时映射,我收到响应:405 Http method DELETE is not supported by this URL.
请求如下所示:
DELETE localhost:8080/authorization_servers/asxas
Headers:
Authorization: "test:<stuff>"
Run Code Online (Sandbox Code Playgroud)
如果有人可以调查并帮助我,我将不胜感激
我的Rails localhost服务器出现问题,所有Post调用都开始返回405方法不允许.但是我们的登台和生产服务器没有问题.它发生在代码的所有分支上,甚至是那些尚未更新的代码.调试时,我看到它到达路由文件而不是控制器.
我尝试删除我的宝石并重新安装,从WEBrick切换到Pama,创建我的git项目的新克隆.
服务器
Started POST "/assets" for ::1 at 2015-07-14 12:14:27 -0400
Run Code Online (Sandbox Code Playgroud)
Chrome中的网络标签
一般
Remote Address:[::1]:3000
Request URL:http://localhost:3000/assets
Request Method:POST
Status Code:405 Method Not Allowed
Run Code Online (Sandbox Code Playgroud)
响应
HTTP/1.1 405 Method Not Allowed
Cache-Control:no-cache
Content-Length:18
Content-Type:text/plain
X-Request-Id:9b0b2dd2-065b-4610-91c9-36494ea95353
X-Runtime:0.145368
Run Code Online (Sandbox Code Playgroud)
请求
POST /assets HTTP/1.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Connection:keep-alive
Content-Length:8376627
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryx8y8PBySdt7dxs4A
Cookie:activeAccordionGroup=collapseTwo; _fusion360_hub_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWFlYmVlOGZjZmI3YzVlYjBjNjAyYzcyMzNhNzIyMzIwBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMTllM2xhK1k4WG1hd2xYNnZCOEtHOEhPaHNTbWQvZGR2cGJ3bU9WUXIwRzg9BjsARg%3D%3D--4e108cb5f6eca3d986c0b3accec07bd2c27560b2; _mkto_trk=id:760-CWR-293&token:_mch-localhost-1435859445290-79614; _pk_id.845225.1fff=9847e7981c291a08.1435859445.1.1435859445.1435859445.; _allegorithmic-substance-marketplace_session=M3dMUCs4ZEtWSTFJTFVHV2VYN2pESFdHcGlHL2grVVVKSGxIWEZ3MlhXQkpRdHE2L0ZkMFpURmZDWGl6aTMxYSttMXFSQXN2M08zVVVXZTRHMDNKOHJOUzA1TmZoYnMwWURjb3c0Rkx6MTJYOW1Uem9aNGRObEMvc1NpSWo5VnQ4dUIzRnRtTFpnMlpOQVVZUU1SdWxiN1ZjN1lIMVd3Sk5jaXkyZkZLZ3duWTc4K2dnK0FSK29JVWdva2t0eUN1Q3hJbjFERHJVaGtndjVoWGxDRUlndz09LS1rZDdWcmtEWHlJWHRpZjc1MFNUSDF3PT0%3D--d34962721f449064dfdfd4629c0239ea1340aee4; __profilin=p%3Dt
Host:localhost:3000
Origin:http://localhost:3000
Pragma:no-cache
Referer:http://localhost:3000/assets/new
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/537.36
Run Code Online (Sandbox Code Playgroud) ruby-on-rails localhost http-status-code-405 ruby-on-rails-4
我的问题很简单,在使用@require_POST装饰器时,如何在Django中显示HTTP状态405(方法不允许)的自定义错误页面?
我正在使用django.views.decorators.http.require_POST装饰器,当GET请求访问页面时,控制台显示405错误,但页面只是空白(甚至不是Django错误页面).如何让Django显示此类错误的自定义和/或默认错误页面?
编辑:值得一提的是,我已经尝试在我的模板文件夹中放置一个404.html,500.html和405.html页面 - 但这也无济于事.我曾经也之间的变化DEBUG = True和False,都无济于事.
当我尝试下面的代码
python -c "import nltk; nltk.download('punkt');
nltk.download('averaged_perceptron_tagger');
nltk.download('maxent_treebank_pos_tagger');
nltk.download('wordnet')"
Run Code Online (Sandbox Code Playgroud)
控制台说
[nltk_data] Error loading punkt: HTTP Error 405: Not allowed.
[nltk_data] Error loading averaged_perceptron_tagger: HTTP Error 405:
[nltk_data] Not allowed.
[nltk_data] Error loading maxent_treebank_pos_tagger: HTTP Error 405:
[nltk_data] Not allowed.
[nltk_data] Error loading wordnet: HTTP Error 405: Not allowed.
Run Code Online (Sandbox Code Playgroud) 我的应用程序没有iframe工作正常,在Facebook上返回405错误!为什么会这样?
我正在尝试在MVC 4应用程序中使用PUT,我收到405错误.
在我的路由中,我对允许PUT和POST的路由有约束,POST到端点工作,PUT失败了405.
我已经按照这里的建议ASP.NET Web API仅在某些服务器上返回404 for PUT,这里ASP.NET MVC在HTTP DELETE请求上得到405错误?
我也从IIS中删除了WeDAV,但我仍然得到了405.任何人还有其他建议吗?
我在IIS 8(使用Visual Studio 2012)上也遇到了完全相同的问题,因为我遵循了这个建议ASP.NET Web API - PUT&DELETE动词不允许 - IIS 8仍然没有运气
django ×2
http ×2
python ×2
android ×1
asp.net ×1
asp.net-mvc ×1
facebook ×1
github ×1
http-delete ×1
http-put ×1
https ×1
iis ×1
iis-7.5 ×1
iis-8 ×1
java ×1
localhost ×1
nltk ×1
spring ×1
spring-mvc ×1
wcf ×1
wcf-web-api ×1
web-services ×1