Iframe 在dojo中发送跨域帖子
我尝试过执行Iframe 在dojo中发送跨域帖子,iframe,dojo,cors,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":"helloWor
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服务的地方)上设置了适当的头文件(和相应的过滤器) 主要问题是,这是一个飞行前请求(选项请求,在验证后,后续请求将出现) 我通过向Tomcat(Tomcat安装目录-->conf-->web.xml)添加默认CORS过滤器解决了这个问题:
克斯菲尔特
org.apache.catalina.filters.CorsFilter
克斯菲尔特
/*
注意:CORS过滤器集成在V7.0.41(如果我错了请纠正我)及以上版本中
可以使用Dojo中的
XHR
请求来完成请求。您可能需要在XHR请求中设置头。这是一个可能有用的方法。xhr请求内容中有一个“headers”属性。您可能必须使用xhr来发送json。我尝试了各种xhr请求的头,但都不起作用。这就是为什么我试图通过使用iframe来实现我的目标。当我使用Firefox的RESTClient插件时,我能够得到响应。在这之后,我用HTTPLiveHeaders插件查看了标题,并尝试设置与成功请求相同的标题,但仍然不起作用。
<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>