首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的POST函数的跨域问题

我的POST函数的跨域问题
EN

Stack Overflow用户
提问于 2014-02-28 18:54:31
回答 2查看 95关注 0票数 0

我有一个MVC rest Web API,它的方法看起来像这样:

代码语言:javascript
复制
 public HttpResponseMessage PostBook(DtoBooks Book)
        {
            if (Book == null)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }
            Book.Id = Guid.Empty;
            BookManager.Instance.Add(Book);
            var response = Request.CreateResponse(HttpStatusCode.Created, Book);
            return response;
        }

它与IIS托管在不同的域中。

当我想测试做一个post时,我输入下面的js:

代码语言:javascript
复制
jQuery.ajax({
                type: "POST",
                url: "http://domain-2:9090/api/Values/",
                dataType: "json",
                data: { CallToActionUrl: 'http://domain-2/', Message: 'Hello World!', OpenInModal: false, Status: 0, TargetUser: 'domain2\admin', TimeStamp: '2014-02-28', Type: 0 },
                success: function (data) {
                    alert("success")
                },
                error: function (data) {
                    alert("Fail")
                }
            }); 

当我导航到http://domain-2:8080/时,我可以运行这个ajax,它工作得很好!但是当我尝试在不同的域上使用它时,比方说domain-3,它失败了。

我试过CORS,它可以在除IE9之外的所有浏览器上运行。

对此有什么解决方案吗?会很感激的。

EN

回答 2

Stack Overflow用户

发布于 2014-02-28 19:35:15

您可以将Apache配置为接受跨站点。

下面的链接中还提供了其他解决方案。

Breaking the cross domain barrier

Cross Domain AJAX Request with YQL and jQuery

Cross-domain requests with jQuery

Simple cross domain html request with jquery

jQuery ajax, get html cross domain

JavaScript: Use a Web Proxy for Cross-Domain XMLHttpRequest Calls

希望上面的链接能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2014-02-28 20:23:17

您的错误消息是否提到了有关跨域策略的内容?我遇到了类似的问题,并得到了那个消息。

尝试在webservice文件夹中创建文件crossdomain.xml,并包含以下内容:

代码语言:javascript
复制
<?xml version="1.0"?>
<\!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

您可能希望将*更改为另一个更具限制性的值。但你可以从那里开始工作,如果它有效的话

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22093121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档