WCF WebInvoke,Asp.net 脚本使用 OPTIONS 而不是 POST 方法

发布于 2024-09-06 14:28:46 字数 680 浏览 2 评论 0原文

我们的 Web 应用程序中有一个 WCF 服务,浏览器通过 ajax(jquery 和 asp.net scriptmanager)调用该服务。

在该服务中,一些方法是 WebGet,一些方法是 WebInvoke

问题现在是通过 asp 对 WebInvoke 方法的任何请求.net scriptmanager 使用http“OPTIONS”而不是“POST”发出请求。并且 Web 服务器将拒绝此请求,因为它不允许

在未定义方法时将 OPTIONS POST 设为 WebInvoke 属性的默认值。

自从过去几周我们今天才发现这个问题以来,我们就开始遇到这个问题。我们大约在同一时间将所有内容升级到 .net 4.0,因此不确定 .net 4.0 是否发生了某些变化。

另外奇怪的是,当使用像 xyz.com 这样的网站时一切正常,我们只在使用 www.xyz.com 时看到问题

知道它可能是什么吗?

编辑:好的,没有什么关闭

问题是 Asp.net scriptmanager 不允许在 ajax 中跨站点引用。 但是等等,我们不会做任何调用跨站点的事情。

我发现当我使用 www.a.com 时,脚本管理器生成的 js 文件想要使用 a.com 而不是 www.a.com。

知道如何解决这个问题吗?

We have a WCF service in our web application which is being called by browser through ajax(jquery and asp.net scriptmanager)

In this service some of the methods are WebGet and some of them are WebInvoke

Problem is now any request to WebInvoke method through asp.net scriptmanager is making request using http 'OPTIONS' instead of 'POST'. And webserver is going to deny this request as it don't allow OPTIONS

POST should be default for WebInvoke attribute when no method is defined.

We started having this problem since last couple of weeks just spotted today. We upgraded everything to .net 4.0 around same time so not sure .net 4.0 has something changed.

Also weird thing is everything works fine when using website like xyz.com we only see problem when using www.xyz.com

Any idea what it could be?

Edit: Ok got little closure

Problem is Asp.net scriptmanager does not allow cross site reference in ajax.
But wait we do not do anything that calls cross site.

What i found is when i use www.a.com some how js files generated by script manager wants to use a.com not www.a.com.

Any idea how to resolve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文