gpt4 book ai didi

jquery ajax 请求使用 OPTIONS 而不是 GET/POST - 仅在 iPad 上?

转载 作者:行者123 更新时间:2023-12-01 01:37:36 25 4
gpt4 key购买 nike

我正在开发一个使用大量 AJAX 调用的网站。我正在使用快捷方式 - .get()、.post() 和 .load()

在台式机上,使用我迄今为止测试过的任何浏览器一切正常。但是当我使用 iPad 进行测试时,所有 AJAX 调用都会失败。检查服务器日志发现他们正在使用 OPTIONS 而不是 GET/POST - 到目前为止,这听起来像是之前回答过的问题,但是:

a) 这种情况仅发生在 iPad 移动版 Safari 上,而不会发生在桌面上的 Safari 或桌面上的任何其他浏览器上b) 我已经三重检查我是否使用相同的域、没有子域、没有 http/https 等。

我不知道这里发生了什么,所以有人可以帮忙吗?

最佳答案

我在 JQuery/.NET WCF 的一个项目中遇到了同样的问题,其中 Firefox 使用 OPTIONS 动词来了解允许哪些动词(get、post、delete、put)。

因此,我将其添加到“Application_BeginRequest”方法中的 global.asax.cs 文件中,该方法由所有 REST 服务继承。因此,当调用 REST 服务时,它首先通过该方法:

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");

if (HttpContext.Current.Request.HttpMethod == "OPTIONS") {
HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, x-requested-with");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}

当使用动词“OPTIONS”时,全局页面返回允许的选项。然后浏览器发送POST/DELETE/GET/PUT请求。

我想你必须做类似的事情。您的网站使用什么技术?

顺便说一句,如果你有更好的方法来解决这个问题,我也很高兴使用它:)

关于jquery ajax 请求使用 OPTIONS 而不是 GET/POST - 仅在 iPad 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9522751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com