我尝试执行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的过滤器)。
答案 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
请求来完成请求。