在dojo中发送跨域帖子

时间:2014-03-14 13:29:21

标签: iframe dojo cors

我尝试执行XHR请求和iframe方法,但两者都导致死路一条。当我使用XHR请求时,我得到(预期的)CORS异常,但是当我使用iframe时,我无法发送JSON数据。

有人知道怎么做吗?

require(["dojo/request/iframe", "dojo/json"], function(iframe, JSON){
    var json = JSON.stringify({"bindingName":"iasistwebservice", "method":"helloWorld", "params": []});
    iframe("http://10.10.51.49:8080/TestProject/restservices/AsistWebService", {
        data: json,
        handleAs: "json",
      }).then(function(data){
        alert ( data );
      });
});

我已经在Tomcat(运行REST服务的地方)上设置了适当的标头(以及根据https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter的过滤器)。

1 个答案:

答案 0 :(得分:0)

主要问题是它是一个飞行前请求(OPTIONS请求,在此之后验证了POST请求将会跟随)。

我通过将默认的CORS过滤器添加到我的Tomcat(Tomcat安装目录 - > conf - > web.xml)来解决了这个问题:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

注意:CORS过滤器集成在V 7.0.41(如果我错了,请纠正我)及以上。

可以使用Dojo中的XHR请求来完成请求。