【发布时间】:2015-10-13 00:54:23
【问题描述】:
我提出以下要求:
function doPoolPartyGetChildrenAjaxRequest(parent) {
return $.ajax({
url: "http://127.0.0.1:8086/PoolParty/api/thesaurus/1DCE2E49-7DD8-0001-524C-1A1B14A0141A/childconcepts",
data: {language: "en", parent: parent, properties: "skos:narrower"},
username: 'xxxx',
password: 'xxxx',
dataType: 'json',
crossDomain: true,
beforeSend: function (req) {
req.setRequestHeader('Authorization', 'Basic ' + btoa('superadmin:poolparty'));
},
xhrFields: {
withCredentials: true
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(textStatus);
},
success: function (data) {
for (var i = 0; i < data.length; i++) {
data[i].title = data[i].prefLabel
if (!(data[i].narrowers === undefined)) {
data[i].lazy = true
}
}
data.sort(function(a, b) {
if (a.prefLabel.toLowerCase() == b.prefLabel.toLowerCase())
return 0;
if (a.prefLabel.toLowerCase() > b.prefLabel.toLowerCase())
return 1;
else
return -1
});
}
})
我需要做什么才能让它工作,这是我得到的错误:
选项http://127.0.0.1:8086/PoolParty/api/thesaurus/1DCE2E49-7DD8-0001-524C-1A1B…Fthesaurus.iadb.org%2Fpublicthesauri%2FIdBTopics&properties=skos%3Anarrower 401(未经授权) m.ajaxTransport.send
m.extend.ajax doPoolPartyGetChildrenAjaxRequest setPoolPartyTreeBroswer
(匿名函数)
m.回调.j m.Callbacks.k.fireWith
m.extend.ready
Ĵ XMLHttpRequest 无法加载 http://127.0.0.1:8086/PoolParty/api/thesaurus/1DCE2E49-7DD8-0001-524C-1A1B14A0141A/childconcepts?language=en&parent=http%3A%2F%2Fthesaurus.iadb.org%2Fpublicthesauri%2FIdBTopics&properties=skos%3Anarrower。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:63342' 不允许访问。响应具有 HTTP 状态代码 401。 错误
我不太理解这个错误。如何查看我的代码是否将正确的标头发送到服务器?我如何查看服务器的响应。
我的 Tomcat 7 配置如下:
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我不知道我还需要做什么。请任何人都可以指导我。
我如何检查事情,什么是发送接收。 jquery 1.10.2 有什么特别之处吗?
Tomcat 7 的 corsfilter 有问题吗?
我过去曾使用过tomcat6。从那以后我改用tomcat 7,它根本不起作用。
【问题讨论】:
-
如果请求发送到托管网页的域以外的域,您可能需要使用 jsonp 或 CORS。 stackoverflow.com/questions/2067472/what-is-jsonp-all-about
-
但这不是我对上面显示的 Cors 配置所做的吗?我刚刚允许使用 Cors 过滤器。 Tomcat 7 上的默认设置
标签: javascript jquery ajax tomcat