首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CORS实施后,ios UIWebView上的SOP违规,但FF桌面上的SOP违规?

CORS实施后,ios UIWebView上的SOP违规,但FF桌面上的SOP违规?
EN

Stack Overflow用户
提问于 2013-02-05 02:33:56
回答 1查看 225关注 0票数 0

我从域A加载GWT项目,然后尝试从位于不同域(B)的另一个服务器获取一些数据。所以我遇到了SOP违规的问题。为了解决这个问题,我在服务器B上实现了CORS。现在,当通过Firefox桌面运行时,SOP问题已经消失。然后,我尝试在ios上的UIWebView中运行相同的代码。不过,我似乎得到了SOP违规:

代码语言:javascript
复制
public class MyRequestCallback implements RequestCallback {

    @Override
    public void onResponseReceived(Request request, Response response) {
        if (response != null) {
            if (response.getStatusCode() == 0) {
                // Is this a SOP violation?
            }
        }
    }
}

我可以看到连接花费了一些时间(所以看起来请求正在发出),但随后我只得到了一个零状态代码。

有没有人遇到过这样的事情?很难找出在哪里发布这篇文章,因为它涉及到堆栈的几个不同部分。也许在UIWebView上有一个我需要设置的属性,告诉它可以使用CORS?

为了在我的服务器上实现CORS (我使用的是jetty),我使用:http://wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter

谢谢

-更新

下面是我的过滤器在web.xml中的定义:

代码语言:javascript
复制
<filter-mapping>
  <filter-name>cross-origin</filter-name>
  <url-pattern>/api/v1/*</url-pattern>
</filter-mapping>

FF客户端和ios客户端都命中了我的one测试端点。

EN

回答 1

Stack Overflow用户

发布于 2013-02-06 09:37:38

我更改了启动jetty的方式,现在使用:

http://wiki.eclipse.org/Jetty/Howto/Using_Jetty_Runner

而不是:

http://wiki.eclipse.org/Jetty/Howto/Run_Jetty

使用runner运行我的war,跨源请求运行得很好。对于我使用的jetty版本(v7.3)和由于这个问题而更新到的版本v7.6.9都是如此。所以我之前启动jetty的方式可能有一些错误。

谢谢

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

https://stackoverflow.com/questions/14693190

复制
相关文章

相似问题

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