我面临的问题与选项飞行前请求显示404未找到。在我的本地环境中测试了这一点,我的设置工作完全正常。但是,当我试图在实际的IIS服务器中实现这一点时,选项预试请求显示没有找到404。我的api是作为一个web api项目创建的。
我曾尝试按照其他帖子中的建议设置飞行前请求处理程序,但它仍然不起作用。是否有任何特定的原因,它只在本地工作?
本节显示选项请求:
General Request URL: http://api.domain.cc/api/Login Request Method: OPTIONS Status Code: 404 Not Found Remote Address: 192.168.10.5:80 Referrer Policy: strict-origin-when-cross-origin Response Headers: HTTP/1.1 404 Not Found Content-Type: text/html X-Powered-By: ASP.NET Server: Domain Date: Tue, 30 Mar 2021 07:54:34 GMT Content-Length: 1245 Request Headers: OPTIONS /api/Login HTTP/1.1 Host: api.domain.cc Connection: keep-alive Pragma: no-cache Cache-Control: no-cache Accept: */* Access-Control-Request-Method: POST Access-Control-Request-Headers: authorization,content-type Origin: http://site.domain.cc User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Sec-Fetch-Mode: cors Referer: http://site.domain.cc/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9,zh-TW;q=0.8,zh;q=0.7,zh-CN;q=0.6
我的web.config设置如下:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
</system.webServer>
我的web api配置如下:
public static void Register(HttpConfiguration config) { // Web API configuration and services EnableCorsAttribute cors = new EnableCorsAttribute( origins: "http://site.domain.cc", headers: "*", methods: "GET, POST, DELETE, PUT, OPTIONS") { SupportsCredentials = true }; config.EnableCors(cors); // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
我设法解决了我这边的问题。我在这里做了两件事。
我的api仍然为选项请求返回错误404的原因是因为我的应用程序池以前设置为“经典”模式。
你能先测试你的api控制器吗,在你的web配置中设置允许的来源为“*”
如果这也返回404 not found,那么问题出在其他方面,而不是CORS。
1.将我的文件上载到000webhost。我将公用文件夹中的所有文件放置到public_html,然后创建了一个名为laravel的文件夹,并在那里上载了所有其他文件。这是我的目录结构: 拉拉维尔 应用程序 引导 配置 .... 公共网页 index.html ...... 2.在我的索引中。php文件,我已经更改了一些内容 > 需要目录。'//laravel/引导/自动加载。php′; $app
我使用RESTAssured练习web服务。在post请求中,它返回500服务器错误,其中我使用邮差发送请求,没有错误。谁能帮我调试一下这个错误吗?请给点意见。任何帮助都是感激的?提前道谢。 错误消息的状态代码应为<200>,但为<500>。 堆栈跟踪:
这是我的控制器,它将请求映射到以下url
问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服
问题内容: 我的科尔多瓦版本是 5.0.0 将应用程序部署在设备上时,对于所有ajax请求都收到404错误。在网络浏览器上,它可以正常工作,但是在设备上部署时,相同的应用程序无法正常工作。 我尝试添加关注者来解决该问题,但没有帮助。 Config.xml AndriodManiest.xml 我还在index.html文件中添加了以下内容,但也没有任何区别。 这里的任何人还有另一个解决此问题的技巧
这是我在laravel 5中的测试ajax(参考下面) 以及触发链接 我的路线呢 但它给我一个错误,当我在谷歌chrome运行控制台,它不返回预期的响应返回成功!Ajax在laravel 5';" 邮递http://juliver.laravel.com/test500(内部服务器错误) 我的代码有什么问题?我遗漏了什么?