Joh*_*n K 6 asmx http-verbs iis-7.5
似乎ASMX隐含地不允许OPTIONS动词.我发布这个问题是因为我正在使用POST的jQuery AJAX调用,它首先在发出POST动词**之前向服务器查询可用的OPTIONS.
默认情况下,Web.config将所有谓词映射到旧版ASMX,如此部分配置示例所示,因此所有内容都应正确路由:
<system.webServer>
<requestFiltering>
<verbs>
<add verb="OPTIONS" allowed="true"/>
<add verb="GET" allowed="true"/>
<add verb="POST" allowed="true"/>
</verbs>
</requestFiltering>
<handlers>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Run Code Online (Sandbox Code Playgroud)
但是,对于OPTIONS请求,HTTP响应始终为405.例如,给出以下请求:
OPTIONS http://localhost:35920/MarkupTransfomer.asmx HTTP/1.1
Host: localhost:35920
Access-Control-Request-Method: POST
Run Code Online (Sandbox Code Playgroud)
并始终导致:
HTTP/1.1 405 Method Not Allowed
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
Run Code Online (Sandbox Code Playgroud)
jQuery AJAX调用如下所示,来自最近一篇关于使用ASMX的Encosia博客文章的推荐:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://localhost:35920/MarkupTransfomer.asmx",
data: "{'hi'}",
dataType: "json"
});
Run Code Online (Sandbox Code Playgroud)
**注意:我不想将客户端切换为使用GET而不是POST.
摘要问题:我是否
可以配置ASP.NET以允许ASMX固有地处理OPTIONS请求而不会出现错误?
我可以找一种方法告诉你jQuery.ajax(..)不要在POST之前发出OPTIONS动词吗?
如果我不能从传统的ASMX那里得到什么,我还考虑了另外两个潜在的想法:
System.Web.IHttpHandler,将其粘贴在web.config handlers部分,以仅管理对默认ASMX行为之外的verbs=OPTIONS请求path=*.asmx.这将是一个可行的解决方法.在我采取行动之前,我想向社区查询我可能忽略的事情,或者更好的选择(没有双关语).
是的,我的网络服务托管在不同的域上.显然,使用相同的原始策略导航过多的问题.这个更新绝对是值得信息的所有事情考虑的问题的上下文!
但是,我想确保此问题保留在ASMX服务器和HTTP级别.虽然我可能在不久的将来面临相关的浏览器问题,但这些问题对于解决此问题的HTTP协议级别并不重要.谢谢.
Joh*_*ers -1
我不知道 ASMX 是否能够处理 OPTIONS,即使对于 AJAX 请求也是如此。对于 OPTIONS 动词,您到底想返回什么?客户使用 OPTIONS 的目的是什么?
另外,我还从 ASP.NET 处理 OPTIONS 动词的角度对此进行了研究。就我而言,它在根 web.config 级别被禁止,而不是在 ASP.NET 或 ASMX 级别。该动词的默认映射是
<add path="*" verb="*" type="System.Web.HttpMethodNotAllowedHandler" validate="True" />
Run Code Online (Sandbox Code Playgroud)
这对应于您收到的 405 错误。
| 归档时间: |
|
| 查看次数: |
2437 次 |
| 最近记录: |